Sdílet prostřednictvím


Postupy: Připojit metody obslužné rutiny událostí k události

Chcete-li zpracovávat události definované v jiné třídě, je nutné definovat a registrovat obslužnou rutinu události. Obslužná rutina události musí mít stejnou signaturu metody jako delegát, který je pro danou událost deklarován. Vaši obslužnou rutinu události zaregistrujete přidáním této obslužné rutiny k události. Po přidání vaší obslužné rutiny k událost je daná metoda volána, kdykoli třída vyvolá událost.

Kompletní příklad, který znázorňuje vyvolání a zpracování událostí, naleznete v tématu Jak: Vyvolat a zpracovat události.

Chcete-li přidat metodu obslužné rutiny události k události

  • Definujte metodu obslužné rutiny události se stejnou signaturou jako delegát události.
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. Vytvořte instanci delegáta pomocí odkazu na metodu obslužné rutiny události. Když je zavolána instance delegáta, je touto instancí zase volána metoda obslužné rutiny události.
' 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. Přidejte instanci delegáta k události. Když je událost vyvolána, je zavolána instance delegáta a její přidružená metoda obslužné rutiny události.
' 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;

Viz také

Úkoly

Postupy: Vyvolat a zpracovávat události

Koncepty

Zpracování událostí

Vyvolání události

Události a Delegáti

Další zdroje

Zpracování a vyvolávání událostí