Cómo: Conectar métodos controlador de eventos a eventos

Para consumir eventos definidos en otra clase, debe definir y registrar un controlador de eventos. El controlador de eventos debe tener la misma firma de método que el delegado declarado para el evento. Puede registrar su controlador de eventos agregando el controlador al evento. Una vez agregado, se llama al método siempre que la clase provoca el evento.

Para consultar un ejemplo completo de cómo provocar y controlar eventos, vea Cómo: Provocar y consumir eventos.

Para agregar un método de control de eventos para un evento

  • Defina un método de control de eventos con la misma firma que el delegado de eventos.
Public Class WakeMeUp
    ' AlarmRang has the same signature as AlarmEventHandler.
    Public Sub AlarmRang(sender As Object, e As AlarmEventArgs)
        '...
    End Sub
    '...
End Class
public class WakeMeUp
{
    // AlarmRang has the same signature as AlarmEventHandler.
    public void AlarmRang(object sender, AlarmEventArgs e)
    {
        //...
    }
    //...
}
public ref class WakeMeUp
{
public:
    // AlarmRang has the same signature as AlarmEventHandler.
    void AlarmRang(Object^ sender, AlarmEventArgs^ e)
    {
        //...
    }
    //...
};
  1. Cree una instancia del delegado, utilizando una referencia al método de control de eventos. Cuando se llama a la instancia de delegado, ésta, a su vez, llama al método de control de eventos.
' 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. Agregue la instancia de delegado al evento. Cuando se provoca el evento, se llama a la instancia de delegado y a su método de controlador eventos asociado.
' 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;

Vea también

Tareas

Cómo: Provocar y utilizar eventos

Conceptos

Utilizar eventos

Provocar un evento

Eventos y delegados

Otros recursos

Controlar y provocar eventos