Condividi tramite


Procedura: connettere agli eventi metodi per la gestione degli eventi

Per utilizzare gli eventi definiti in una classe diversa, è necessario definire e registrare un gestore eventi. Il gestore eventi deve disporre della stessa firma del metodo assegnata al delegato dichiarato per l'evento in questione. Per registrare il gestore eventi, è necessario aggiungerlo all'evento. Una volta effettuata questa operazione, il metodo verrà chiamato ogni volta che la classe genera l'evento.

Per un esempio che illustri in maniera completa la generazione e la gestione degli eventi, vedere Procedura: generare e utilizzare eventi.

Per aggiungere un metodo per la gestione degli eventi a un evento

  • Definire un metodo per la gestione degli eventi che disponga della stessa firma del delegato dell'evento.
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. Creare un'istanza del delegato, utilizzando un riferimento al metodo per la gestione degli eventi. Quando viene effettuata la chiamata all'istanza del delegato, tale istanza effettuerà a sua volta una chiamata al metodo per la gestione degli eventi.
' 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. Aggiungere l'istanza del delegato all'evento. Quando viene generato l'evento, verrà eseguita una chiamata all'istanza del delegato e al metodo per la gestione degli eventi associato.
' 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;

Vedere anche

Attività

Procedura: generare e utilizzare eventi

Concetti

Utilizzo degli eventi

Generazione di un evento

Eventi e delegati

Altre risorse

Gestione e generazione di eventi