Handles — Klauzula (Visual Basic)

Deklaruje, że procedura obsługuje określone zdarzenie.

Składnia

proceduredeclaration Handles eventlist

generatora

proceduredeclaration Deklaracja Sub procedury procedury, która będzie obsługiwać zdarzenie.

eventlist Lista zdarzeń do proceduredeclaration obsługi rozdzielonych przecinkami. Zdarzenia muszą być wywoływane przez klasę bazową dla bieżącej klasy lub przez obiekt zadeklarowany przy użyciu słowa kluczowego WithEvents .

Uwagi

Handles Użyj słowa kluczowego na końcu deklaracji procedury, aby spowodować obsługę zdarzeń zgłaszanych przez zmienną obiektu zadeklarowaną przy użyciu słowa kluczowego WithEvents . Słowo Handles kluczowe może być również używane w klasie pochodnej do obsługi zdarzeń z klasy bazowej.

Słowo Handles kluczowe i AddHandler instrukcja umożliwiają określenie, że określone procedury obsługują określone zdarzenia, ale istnieją różnice. Użyj słowa kluczowego Handles podczas definiowania procedury, aby określić, że obsługuje określone zdarzenie. Instrukcja AddHandler łączy procedury z zdarzeniami w czasie wykonywania. Aby uzyskać więcej informacji, zobacz AddHandler, instrukcja.

W przypadku zdarzeń niestandardowych aplikacja wywołuje metodę dostępu zdarzenia AddHandler podczas dodawania procedury jako procedury obsługi zdarzeń. Aby uzyskać więcej informacji na temat zdarzeń niestandardowych, zobacz Event Statement (Instrukcja zdarzenia).

Przykład 1

Public Class ContainerClass
    ' Module or class level declaration.
    WithEvents Obj As New Class1

    Public Class Class1
        ' Declare an event.
        Public Event Ev_Event()
        Sub CauseSomeEvent()
            ' Raise an event.
            RaiseEvent Ev_Event()
        End Sub
    End Class

    Sub EventHandler() Handles Obj.Ev_Event
        ' Handle the event.
        MsgBox("EventHandler caught event.")
    End Sub

    ' Call the TestEvents procedure from an instance of the ContainerClass 
    ' class to test the Ev_Event event and the event handler.
    Public Sub TestEvents()
        Obj.CauseSomeEvent()
    End Sub
End Class

W poniższym przykładzie pokazano, jak klasa pochodna może używać Handles instrukcji do obsługi zdarzenia z klasy bazowej.

Public Class BaseClass
    ' Declare an event.
    Event Ev1()
End Class
Class DerivedClass
    Inherits BaseClass
    Sub TestEvents() Handles MyBase.Ev1
        ' Add code to handle this event.
    End Sub
End Class

Przykład 2

Poniższy przykład zawiera dwa programy obsługi zdarzeń przycisku dla projektu aplikacji WPF.

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

Przykład 3

Poniższy przykład jest odpowiednikiem poprzedniego przykładu. Klauzula eventlist w klauzuli Handles zawiera zdarzenia dla obu przycisków.

Private Sub Button_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click, Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

Zobacz też