Cláusula Handles (Visual Basic)

Declara que um procedimento manipula um evento especificado.

Sintaxe

proceduredeclaration Handles eventlist

Partes

proceduredeclaration A Sub declaração de procedimento para o procedimento que manipulará o evento.

eventlist Lista dos eventos a proceduredeclaration serem manipulados, separados por vírgulas. Os eventos devem ser gerados pela classe base da classe atual ou por um objeto declarado usando a WithEvents palavra-chave.

Observações

Use a Handles palavra-chave no final de uma declaração de procedimento para fazer com que ela manipule eventos gerados por uma variável de objeto declarada usando a WithEvents palavra-chave. A Handles palavra-chave também pode ser usada em uma classe derivada para manipular eventos de uma classe base.

A Handles palavra-chave e a AddHandler instrução permitem especificar que procedimentos específicos lidam com eventos específicos, mas há diferenças. Use a Handles palavra-chave ao definir um procedimento para especificar que ele manipula um evento específico. A AddHandler instrução conecta procedimentos a eventos em tempo de execução. Para obter mais informações, consulte AddHandler Statement.

Para eventos personalizados, o aplicativo invoca o acessador do AddHandler evento quando adiciona o procedimento como um manipulador de eventos. Para obter mais informações sobre eventos personalizados, consulte Declaração de evento.

Exemplo 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

O exemplo a seguir demonstra como uma classe derivada pode usar a Handles instrução para manipular um evento de uma classe base.

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

Exemplo 2

O exemplo a seguir contém dois manipuladores de eventos de botão para um projeto WPF Application .

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

Exemplo 3

O exemplo a seguir é equivalente ao exemplo anterior. A eventlist cláusula in contém os eventos para ambos os Handles botões.

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

Consulte também