Handles-satsen (Visual Basic)
Deklarerar att en procedur hanterar en angiven händelse.
Syntax
proceduredeclaration Handles eventlist
Delar
proceduredeclaration
Sub
Procedurdeklarationen för proceduren som hanterar händelsen.
eventlist
Lista över de händelser som proceduredeclaration
ska hanteras, avgränsade med kommatecken. Händelserna måste genereras av antingen basklassen för den aktuella klassen eller av ett objekt som deklarerats med nyckelordet WithEvents
.
Kommentarer
Använd nyckelordet Handles
i slutet av en procedurdeklaration för att få det att hantera händelser som genereras av en objektvariabel som deklarerats med hjälp av nyckelordet WithEvents
. Nyckelordet Handles
kan också användas i en härledd klass för att hantera händelser från en basklass.
Med Handles
nyckelordet och -instruktionen AddHandler
kan du ange att vissa procedurer hanterar vissa händelser, men det finns skillnader. Använd nyckelordet Handles
när du definierar en procedur för att ange att den hanterar en viss händelse. Instruktionen AddHandler
ansluter procedurer till händelser vid körning. Mer information finns i AddHandler-instruktion.
För anpassade händelser anropar programmet händelsens AddHandler
accessor när den lägger till proceduren som händelsehanterare. Mer information om anpassade händelser finns i Händelseuttryck.
Exempel 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
I följande exempel visas hur en härledd klass kan använda -instruktionen Handles
för att hantera en händelse från en basklass.
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
Exempel 2
Följande exempel innehåller två knapphändelsehanterare för ett WPF-programprojekt .
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
Exempel 3
Följande exempel motsvarar föregående exempel. I eventlist
Handles
-satsen innehåller händelserna för båda knapparna.
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