Revision: 1687
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 9, 2006 13:05 by rengber
Initial Code
//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();
Initial URL
http://msdnwiki.microsoft.com/en-us/mtpswiki/402101b6-555d-4cf7-b223-1d9fdfaaf1cd.aspx
Initial Description
Annotated version of the Microsoft/GotDotNet demo from the MSDN Wiki.
Initial Title
Generic Based Event Handling Demo for VS.Net 2005
Initial Tags
event
Initial Language
C#