Condividi tramite


Come chiamare un gestore eventi in Visual Basic

Un evento è un'azione o un'occorrenza, ad esempio un clic del mouse o il superamento di un limite di credito, che viene riconosciuto da un componente del programma e per il quale è possibile scrivere il codice per rispondere. Un gestore eventi è il codice che si scrive per rispondere a un evento.

Un gestore eventi in Visual Basic è una routine Sub. Tuttavia, in genere non viene chiamata allo stesso modo delle altre routine Sub. Si identifica invece la routine come gestore dell'evento. È possibile eseguire questa operazione con una clausola Handles e una variabile WithEvents o con un'istruzione AddHandler. L'uso di una clausola Handles è il modo predefinito per dichiarare un gestore eventi in Visual Basic. Questo è il modo in cui i gestori eventi vengono scritti dai progettisti quando si programma nell'ambiente di sviluppo integrato (IDE). L'istruzione AddHandler è adatta per generare eventi in modo dinamico in fase di esecuzione.

Quando si verifica l'evento, Visual Basic chiama automaticamente la routine del gestore eventi. Qualsiasi codice che abbia accesso all'evento può causarne il verificarsi eseguendo un'istruzione RaiseEvent.

È possibile associare più gestori eventi allo stesso evento. In alcuni casi è possibile annullare l'associazione di un gestore da un evento. Per altre informazioni, vedere Events.

Chiamare un gestore eventi usando Handles e WithEvents

  1. Assicurarsi che l'evento sia dichiarato con un'istruzione Event.

  2. Dichiarare una variabile oggetto a livello di modulo o classe usando la parola chiave WithEvents. La clausola As per questa variabile deve specificare la classe che genera l'evento.

  3. Nella dichiarazione della routine Sub di gestione dell'evento aggiungere una clausola Handles che specifica la variabile WithEvents e il nome dell'evento.

  4. Quando si verifica l'evento, Visual Basic chiama automaticamente la routine Sub. Il codice può usare un'istruzione RaiseEvent per fare in modo che si verifichi l'evento.

    Nell'esempio seguente viene definito un evento e una variabile WithEvents che fa riferimento alla classe che genera l'evento. La routine Sub di gestione dell'evento usa una clausola Handles per specificare la classe e l'evento che gestisce.

    Public Class RaisesEvent
        Public Event SomethingHappened()
        Dim WithEvents happenObj As New RaisesEvent
        Public Sub ProcessHappen() Handles happenObj.SomethingHappened
            ' Insert code to handle somethingHappened event.
        End Sub
    End Class
    

Chiamare un gestore eventi usando AddHandler

  1. Assicurarsi che l'evento sia dichiarato con un'istruzione Event.

  2. Eseguire un'istruzione AddHandler per connettere dinamicamente la routine Sub di gestione dell'evento all'evento.

  3. Quando si verifica l'evento, Visual Basic chiama automaticamente la routine Sub. Il codice può usare un'istruzione RaiseEvent per fare in modo che si verifichi l'evento.

    Nell'esempio seguente viene usata l'istruzione AddHandler nel costruttore per associare la routine OnFormClosing come gestore eventi per FormClosing.

    Sub New()
        InitializeComponent()
        AddHandler Me.FormClosing, AddressOf OnFormClosing
    End Sub
    
    Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs)
        ' Insert code to deal with impending closure of this form.
    End Sub
    

    È possibile annullare l'associazione di un gestore eventi da un evento eseguendo l'istruzione RemoveHandler.

Vedi anche