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
Assicurarsi che l'evento sia dichiarato con un'istruzione Event.
Dichiarare una variabile oggetto a livello di modulo o classe usando la parola chiave
WithEvents
. La clausolaAs
per questa variabile deve specificare la classe che genera l'evento.Nella dichiarazione della routine
Sub
di gestione dell'evento aggiungere una clausolaHandles
che specifica la variabileWithEvents
e il nome dell'evento.Quando si verifica l'evento, Visual Basic chiama automaticamente la routine
Sub
. Il codice può usare un'istruzioneRaiseEvent
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 routineSub
di gestione dell'evento usa una clausolaHandles
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
Assicurarsi che l'evento sia dichiarato con un'istruzione
Event
.Eseguire un'istruzione AddHandler per connettere dinamicamente la routine
Sub
di gestione dell'evento all'evento.Quando si verifica l'evento, Visual Basic chiama automaticamente la routine
Sub
. Il codice può usare un'istruzioneRaiseEvent
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.