Solved

Moving from Event Handlers in vb.net to c#.net

Posted on 2009-06-30
4
253 Views
Last Modified: 2013-12-17
Okay, I've finally given up on trying to do this. I only recently learnt to do it in vb.net and found it really useful. Translating that to C# is proving to be an absolute nightmare.

What I had in vb.net was this. A class that inherited and extended the data table class called xDataTable.

One of the main features of this extension is that the base data table will populate itself from a SQL server database if a populated SQLCommand is given to it.

I then added an event to the xDataTable which fired whenever the base data table was populated. Trying to do this in C# is proofing to be my worst nightmare. Can anyone help please.

Summary:

Class xDataTable will contain an event called hasData

Form fEditor should then add a handler to use this event.

Please could someone help and stop me from going back to vb

Thanks.
0
Comment
Question by:paul_whiting
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 18

Accepted Solution

by:
DarrenD earned 500 total points
ID: 24743577
Hi,

If you have a class xDataTable you should create a delegate like so

// Create Event

public delegate void HandleData();

public class xDataTable {

  public event HandleData hasData

  public void Fire() {
    hasData();
  }
}

//Register Event in Form
class registerEvent {

  xDataTable xdata = new xDataTable();

  ImplementationEvent myImpl = new ImplementationEvent();

  xdata.hasData += new HandleData(myImpl.DoSomething);
}

//Register Event in Form
class ImplementationEvent {

  public void DoSomething() {

   console.WriteLine("EventFired");

  }
}

Hope this helps,

Darren
0
 

Author Comment

by:paul_whiting
ID: 24752784
Thanks very much for your reply. It took a while but I got it to work with my scenario. C# is giving me nightmares, but I shall persevere.

Would there be much difference if I passed values with the events?

Thanks

Paul
0
 
LVL 18

Expert Comment

by:DarrenD
ID: 24752867
Hi Paul,

Your delegate will have to change to something like

public delegate void HandleData(string value);

You will have to call the event using a parameter

hasData("Hello");

and your implementation will have to change to

public void DoSomething(string value) {

   console.WriteLine(value);

  }


Think that's it.

Obviously haven't tested it.

Cheers,

Darren
0
 

Author Comment

by:paul_whiting
ID: 24754427
Thanks,

haven't had a chance to test it, but given what I now know via your previous solution, looks like it will  work. Thank-you so much. You have saved my sanity.

Paul
0

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Having just graduated from college and entered the workforce, I don’t find myself always using the tools and programs I grew accustomed to over the past four years. However, there is one program I continually find myself reverting back to…R.   So …
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

627 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question