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