Share via


Nasıl yapılır: olay işleyicisi yöntemleri olaylarına bağlayın

Başka bir sınıfta tanımlanmış olayları tüketmeyi tanımlamak ve bir olay işleyicisi kaydetmek gerekir. Olay işleyicisi bildirilen olay için temsilci olarak aynı yöntem imzası olmalıdır. Olay işleyicisi ekleyerek, olay işleyicisi kaydettirin. Olay, olay işleyicisi ekledikten sonra sınıf olayı oluşturan her yöntemi çağrılır.

Artırılarak ve olayları işleme gösterir tam bir örnek için bkz: nasıl yapılır: artırma ve tüketen olayları.

Bir olayı için bir olay işleyicisi yöntemi eklemek için

  • Bir olay işleyicisi yöntemi aynı imzaya sahip olay temsilci olarak tanımlayın.
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. Olay işleyicisi yöntemi başvurusu kullanarak temsilci, bir kopyasını oluşturun. Temsilci oluşumu çağrıldığında, sırayla olay işleyicisi yöntemini çağırır.
' 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. Temsilci oluşumu için olay ekleyin. Olay ortaya çıktığında, temsilci oluşumu ve onun ilişkili olay işleyicisi yöntemi verilir.
' 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;

Ayrıca bkz.

Görevler

Nasıl yapılır: yükseltmek ve olayları tüketebilir

Kavramlar

Olayları tüketen

Bir olayý çaðýrmak

Olaylar ve temsilciler

Diğer Kaynaklar

İşleme ve olaylarını tetiklemeye yönelik