Mega Code Archive

 
Categories / C# Tutorial / GUI Windows Forms
 

A NET-compatible event

using System;    // Derive a class from EventArgs.  class MyEventArgs : EventArgs {    public int eventnum;  }    // Declare a delegate for an event.   delegate void MyEventHandler(object source, MyEventArgs arg);    // Declare an event class.  class MyEvent {    static int count = 0;      public event MyEventHandler SomeEvent;      // This fires SomeEvent.    public void OnSomeEvent() {      MyEventArgs arg = new MyEventArgs();        if(SomeEvent != null) {        arg.eventnum = count++;        Console.WriteLine("Event fired");       SomeEvent(this, arg);      }    }  }    class X {    public void handler(object source, MyEventArgs arg) {      Console.WriteLine("Event " + arg.eventnum + " received by an X object.");      Console.WriteLine("Source is " + source);      Console.WriteLine();    }  }    class Y {     public void handler(object source, MyEventArgs arg) {      Console.WriteLine("Event " + arg.eventnum + " received by a Y object.");      Console.WriteLine("Source is " + source);      Console.WriteLine();    }  }    class MainClass {    public static void Main() {       X ob1 = new X();      Y ob2 = new Y();      MyEvent evt = new MyEvent();        // Add handler() to the event list.      evt.SomeEvent += ob1.handler;      evt.SomeEvent += ob2.handler;        // Fire the event.      evt.OnSomeEvent();    }  } Event fired Event 0 received by an X object. Source is MyEvent Event 0 received by a Y object. Source is MyEvent Event fired Event 1 received by an X object. Source is MyEvent Event 1 received by a Y object. Source is MyEvent