Return to Snippet

Revision: 1687
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)
    { = "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());

//Register the Handler
  eventRaiser.MyEvent += new EventHandler<CustomEventArgs>(HandleEvent);

//Define the Handler
  private void HandleEvent(object sender, MyEventArgs e)
    MessageBox.Show("Event handled:" +;

//Cause the Event

Initial URL

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

Initial Language