Gewusst wie: Verbinden von Ereignishandlermethoden mit Ereignissen

Aktualisiert: November 2007

Um in einer anderen Klasse definierte Ereignisse zu verarbeiten, müssen Sie einen Ereignishandler definieren und registrieren. Der Ereignishandler muss dieselbe Methodensignatur wie der für das Ereignis deklarierte Delegat aufweisen. Registrieren Sie den Ereignishandler, indem Sie dem Ereignis den Handler hinzufügen. Wenn Sie dem Ereignis den Ereignishandler hinzugefügt haben, wird die Methode immer dann aufgerufen, wenn die Klasse das Ereignis auslöst.

Ein vollständiges Beispiel, das die Auslösung und Behandlung von Ereignissen illustriert, finden Sie unter Gewusst wie: Auslösen und Behandeln von Ereignissen.

So fügen Sie einem Ereignis eine Ereignishandlermethode hinzu

  1. Definieren Sie eine Ereignishandlermethode, die dieselbe Signatur wie der Delegat des Ereignisses aufweist.

    public class WakeMeUp 
    {
        // AlarmRang has the same signature as AlarmEventHandler.
        public void AlarmRang(object sender, AlarmEventArgs e)
        {...};
        ...
    }
    
    Public Class WakeMeUp
       ' AlarmRang has the same signature as AlarmEventHandler.
       Public Sub AlarmRang(sender As Object, e As AlarmEventArgs)
          ...
       End Sub
       ...
    End Class
    
  2. Erstellen Sie unter Verwendung eines Verweises auf die Ereignishandlermethode eine Instanz des Delegaten. Wenn die Delegatinstanz aufgerufen wird, ruft diese die Ereignishandlermethode auf.

    // Create an instance of WakeMeUp.
    WakeMeUp w = new WakeMeUp();
    
    // Instantiate the event delegate.
    AlarmEventHandler alhandler = new AlarmEventHandler(w.AlarmRang);
    
    ' Create an instance of WakeMeUp.
    Dim w As New WakeMeUp()
    
    ' Instantiate the event delegate.
    Dim alhandler As AlarmEventHandler = AddressOf w.AlarmRang
    
  3. Fügen Sie dem Ereignis die Delegatinstanz hinzu. Wenn das Ereignis ausgelöst wird, wird die Delegatinstanz mit der zugehörigen Ereignishandlermethode aufgerufen.

    // Instantiate the event source.
    AlarmClock clock = new AlarmClock();
    
    // Add the delegate instance to the event.
    clock.Alarm += alhandler;
    
    ' Instantiate the event source.
    Dim clock As New AlarmClock()
    
    ' Add the delegate to the event.
    AddHandler clock.Alarm, AddressOf w.AlarmRang
    

Siehe auch

Aufgaben

Gewusst wie: Auslösen und Behandeln von Ereignissen

Konzepte

Behandeln von Ereignissen

Auslösen eines Ereignisses

Ereignisse und Delegaten

Weitere Ressourcen

Behandeln und Auslösen von Ereignissen