Dela via


Handles-satsen (Visual Basic)

Deklarerar att en procedur hanterar en angiven händelse.

Syntax

proceduredeclaration Handles eventlist

Delar

proceduredeclarationSub 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 eventlistHandles -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

Se även