//Define a custom EventArgs class to contain your data.
public class MyEventArgs : EventArgs
{
public string info = "data";
}
//Declare the event as visible to users of the class
public event EventHandler<MyEventArgs> MyEvent;
//Send the event, note that this will throw a nullref if there are no subscribers
//Internal version prevents outsiders from needing to know about the contents of MyEventArgs
protected virtual void InternalSendMyEvent(CustomEventArgs e)
{
if(MyEvent != null)
{
e.info = "Hello Events!";
//This calls all registered subscribers with the following parameters.
MyEvent(this, e);
}
}
//Public version to allow outsiders to trigger the event, not typical implementation.
public void CreateEvent()
{
InternalSendMyEvent(new MyEventArgs());
}
//Consumer
//Register the Handler
eventRaiser.MyEvent += new EventHandler<CustomEventArgs>(HandleEvent);
//Define the Handler
private void HandleEvent(object sender, MyEventArgs e)
{
MessageBox.Show("Event handled:" + e.info);
}
//Cause the Event
eventRaiser.CreateEvent();
Generic Based Event Handling Demo for VS.Net 2005
Leave a Reply
You must be logged in to post a comment.