Compartilhar via


WithEvents e Cláusula Handles

A instrução WithEvents e a cláusula Handles fornecem uma maneira declarativa de especificar os manipuladores de eventos.Um evento gerado por um objeto declarado com a palavra-chave WithEvents pode ser tratado por qualquer procedimento com uma instrução Handles para esse evento, conforme mostrado no exemplo o seguir:

' Declare a WithEvents variable.
Dim WithEvents EClass As New EventClass

' Call the method that raises the object's events.
Sub TestEvents()
    EClass.RaiseEvents()
End Sub

' Declare an event handler that handles multiple events.
Sub EClass_EventHandler() Handles EClass.XEvent, EClass.YEvent
    MsgBox("Received Event.")
End Sub

Class EventClass
    Public Event XEvent()
    Public Event YEvent()
    ' RaiseEvents raises both events.
    Sub RaiseEvents()
        RaiseEvent XEvent()
        RaiseEvent YEvent()
    End Sub
End Class

A instrução WithEvents e a cláusula Handles geralmente são a melhor opção para manipuladores de eventos pois a sintaxe declarativa usada torna mais fácil de codificar, ler e depurar a manipulação de eventos.No entanto, esteja ciente das seguintes limitações sobre o uso de variáveis WithEvents:

  • Não é possível usar uma variável WithEvents como um variável de objeto.Ou seja, você não pode declará-la como Object — você deve especificar o nome da classe quando você declarar a variável.

  • Como compartilhada eventos não são ligadas a instâncias de classe, não é possível usar WithEvents declarativamente manipular eventos compartilhados. Da mesma forma, você não pode usar WithEvents ou Handles para manipular eventos de um Structure.Em ambos os casos, você pode usar a instrução AddHandler para manipular esses eventos.

  • Não é possível criar matrizes de WithEvents variáveis.

  • WithEvents variáveis permitem a um único manipulador de eventos manipular um ou mais tipo de evento, ou um ou mais manipuladores de eventos para manipular o mesmo tipo de evento.

Consulte também

Conceitos

AddHandler e RemoveHandler

Referência

Trata

WithEvents

AddHandler demonstrativo