Compartilhar via


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

Consulte também

Referência

WithEvents (Visual Basic)

Instrução AddHandler

Instrução RemoveHandler

Instrução Event

Instrução RaiseEvent

Outros recursos

Eventos (Visual Basic)