Cláusula Handles (Visual Basic)
Declara que um procedimento manipula um evento especificado
proceduredeclaration Handles eventlist
Partes
proceduredeclaration
A declaração de procedimento Sub para o procedimento que manipulará o evento.eventlist
Lista os eventos para proceduredeclaration manipular, separados por vírgulas. Os eventos devem ser gerados ou pela classe base para a classe atual, ou por um objeto declarado usando a palavra-chave WithEvents.
Comentários
A palavra-chave Handles no fim da declaração de um procedimento faz com que ele manipule eventos gerados por uma variável de objeto declarada usando a palavra-chave WithEvents. A palavra-chave Handles também pode ser usada em uma classe derivada para manipular eventos de uma classe base.
A assinatura do procedimento deve coincidir com as assinaturas de cada evento no eventlist.
A palavra-chave Handles e a instrução AddHandler ambas permitem que você especifique que determinados procedimentos manipulem eventos específicos, mas há diferenças. Use a palavra-chave Handles ao definir um procedimento para especificar que ele manipula um evento específico. A instrução AddHandler conecta os procedimentos a eventos em tempo de execução. Para obter mais informações, consulte Instrução AddHandler.
Para eventos personalizados, o aplicativo chama o acessor AddHandler do evento quando ele adiciona o procedimento como um manipulador de eventos. Para obter mais informações sobre eventos personalizados, consulte Instrução Event.
Exemplo
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 um classe derivada pode usar a instrução Handles 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
O exemplo a seguir contém dois manipuladores de eventos do botão para um Aplicativo WPF project.
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
O exemplo a seguir é equivalente ao exemplo anterior. O eventlist na Handles cláusula contém os eventos para os dois 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