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