Condividi tramite


WithEvents e clausola Handles

Aggiornamento: novembre 2007

L'istruzione WithEvents e la clausola Handles forniscono una modalità dichiarativa per specificare i gestori di eventi. Un evento generato da un oggetto dichiarato con la parola chiave WithEvents può essere gestito mediante qualsiasi routine con un'istruzione Handles relativa a tale evento, come illustrato nell'esempio seguente:

' 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

L'istruzione WithEvents e la clausola Handles spesso costituiscono la soluzione ottimale per i gestori di eventi, poiché la sintassi dichiarativa che utilizzano semplifica le attività di codifica, lettura e debug per la gestione degli eventi. Si tengano tuttavia presenti le seguenti limitazioni relative all'utilizzo delle variabili WithEvents:

  • Non è possibile utilizzare una variabile WithEvents come variabile di oggetto. In altre parole, non è possibile dichiararla come Object ma è necessario specificare il nome della classe quando la si dichiara.

  • Poiché gli eventi condivisinon sono collegati a istanze di classe, non è possibile utilizzare WithEvents per gestire eventi condivisi in maniera dichiarativa. In modo analogo, non è possibile utilizzare WithEvents o Handles per gestire eventi da una Structure. In entrambi i casi, è possibile utilizzare l'istruzione AddHandler per gestire tali eventi.

  • Non è possibile creare matrici di variabili WithEvents.

  • Le variabili WithEvents consentono a unico gestore di eventi di gestire uno o più tipi di evento o a uno o più gestori di eventi di gestire lo stesso tipo di evento.

Vedere anche

Concetti

AddHandler e RemoveHandler

Riferimenti

Handles

WithEvents

Istruzione AddHandler