How to: Connect Event Handler Methods to Events

To consume events defined in another class, you must define and register an event handler. The event handler must have the same method signature as the delegate declared for the event. You register your event handler by adding the handler to the event. After you have added your event handler to the event, the method is called whenever the class raises the event.

For a complete sample that illustrates raising and handling events, see How to: Raise and Consume Events.

To add an event handler method for an event

  • Define an event handler method with the same signature as the event delegate.
Public Class WakeMeUp
    ' AlarmRang has the same signature as AlarmEventHandler. 
    Friend Sub AlarmRang(sender As Object, e As AlarmEventArgs)
        '... 
    End Sub 
    '... 
End Class
public class WakeMeUp
{
    // AlarmRang has the same signature as AlarmEventHandler. 
    internal void AlarmRang(object sender, AlarmEventArgs e)
    {
        //...
    }
    //...
}
public ref class WakeMeUp
{
internal:
    // AlarmRang has the same signature as AlarmEventHandler. 
    void AlarmRang(Object^ sender, AlarmEventArgs^ e)
    {
        //...
    }
    //...
};
  1. Create an instance of the delegate, using a reference to the event handler method. When the delegate instance is called, it in turn calls the event handler method.
' Create an instance of WakeMeUp. 
Dim w As New WakeMeUp()

' Instantiate the event delegate. 
Dim alhandler As AlarmEventHandler = AddressOf w.AlarmRang
// Create an instance of WakeMeUp.
WakeMeUp w = new WakeMeUp();

// Instantiate the event delegate.
AlarmEventHandler alhandler = new AlarmEventHandler(w.AlarmRang);
// Create an instance of WakeMeUp.
WakeMeUp^ w = gcnew WakeMeUp();

// Instantiate the event delegate.
AlarmEventHandler^ alhandler = gcnew AlarmEventHandler(w, &WakeMeUp::AlarmRang);
  1. Add the delegate instance to the event. When the event is raised, the delegate instance and its associated event handler method is called.
' Instantiate the event source. 
Dim clock As New AlarmClock()

' Add the delegate instance to the event. 
AddHandler clock.Alarm, alhandler
// Instantiate the event source.
AlarmClock clock = new AlarmClock();

// Add the delegate instance to the event.
clock.Alarm += alhandler;
// Instantiate the event source.
AlarmClock^ clock = gcnew AlarmClock();

// Add the delegate instance to the event.
clock->Alarm += alhandler;

See Also

Tasks

How to: Raise and Consume Events

Concepts

Consuming Events

Raising an Event

Events and Delegates

Other Resources

Handling and Raising Events