Condividi tramite


Clausola Handles (Visual Basic)

Dichiara che una routine gestisce un determinato evento.

proceduredeclaration Handles eventlist

Parti

  • proceduredeclaration
    La dichiarazione Sub per la routine che gestirà l'evento.

  • eventlist
    Elenco degli eventi che devono essere gestiti da proceduredeclaration.Gli eventi devono essere generati dalla classe base per la classe corrente o da un oggetto dichiarato utilizzando la parola chiave WithEvents.

Note

Utilizzare la parola chiave Handles alla fine di una dichiarazione di routine per fare in modo che tale routine gestisca eventi generati da una variabile oggetto dichiarata con la parola chiave WithEvents.La parola chiave Handles può inoltre essere utilizzata in una classe derivata per gestire eventi da una classe base.

La firma della routine deve corrispondere alle firme di ciascun evento in eventlist.

Sia la parola chiave Handles sia l'istruzione AddHandler consentono di specificare quali particolari routine devono gestire determinati eventi, ma con alcune differenze.Durante la definizione di una routine, utilizzare la parola chiave Handles per specificare l'evento particolare da gestire.L'istruzione AddHandler consente la connessione di routine ed eventi in fase di esecuzione.Per ulteriori informazioni, vedere Istruzione AddHandler.

Per gli eventi personalizzati, l'applicazione richiama la funzione di accesso AddHandler dell'evento quando aggiunge la routine come gestore eventi.Per ulteriori informazioni sugli eventi personalizzate, vedere Istruzione Event.

Esempio

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

Nell'esempio che segue viene illustrato come una classe derivata può utilizzare l'istruzione Handles per gestire un evento da una 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

Nell'esempio seguente sono contenuti due gestori eventi dei pulsanti per un progetto Applicazione WPF.

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

L'esempio che segue equivale a quello precedente.L'oggetto eventlist nella clausola Handles contiene gli eventi per entrambi i pulsanti.

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

Vedere anche

Riferimenti

WithEvents (Visual Basic)

Istruzione AddHandler

Istruzione RemoveHandler

Istruzione Event

Istruzione RaiseEvent

Altre risorse

Eventi (Visual Basic)