Procedura: chiamare un gestore eventi in Visual Basic
Aggiornamento: novembre 2007
Un evento è un'operazione o un'occorrenza, come un clic del mouse o il superamento di un limite di credito, riconosciuta da un componente del programma e per la quale è possibile scrivere un codice di risposta. Un gestore eventi è il codice scritto in risposta a un evento.
Un gestore eventi in Visual Basic è una routine Sub. In genere, tuttavia, tale routine non viene chiamata in modo simile alle altre routine Sub ma viene piuttosto identificata come gestore per l'evento. A tale scopo è possibile utilizzare una clausola Handles e una variabile WithEvents oppure un'Istruzione AddHandler. L'utilizzo di una clausola Handles rappresenta la modalità predefinita per dichiarare un gestore eventi in Visual Basic. I gestori eventi vengono scritti in questo modo dagli addetti alla progettazione quando si programma nell'ambiente di sviluppo integrato (IDE). L'istruzione AddHandler consente di generare eventi in modo dinamico in fase di esecuzione.
Quando si verifica l'evento, la routine del gestore eventi viene chiamata automaticamente. Qualsiasi codice che disponga di accesso all'evento può causarne la generazione mediante l'esecuzione di un'Istruzione RaiseEvent.
È possibile associare più gestori eventi allo stesso evento. In alcuni casi è possibile dissociare un gestore da un evento. Per ulteriori informazioni, vedere Eventi In Visual Basic.
Per chiamare un gestore eventi mediante Handles e WithEvents
Verificare che l'evento venga dichiarato mediante un'Istruzione Event.
Dichiarare una variabile oggetto a livello di modulo o classe utilizzando la parola chiave WithEvents. La clausola As per questa variabile deve specificare la classe che genera l'evento.
Nella dichiarazione della routine di gestione degli eventi Sub aggiungere una clausola Handles che specifichi la variabile WithEvents e il nome dell'evento.
Quando si verifica l'evento, la routine Sub viene chiamata automaticamente. Nel codice è possibile specificare un'istruzione RaiseEvent per generare l'evento.
Nell'esempio seguente vengono definiti un evento e una variabile WithEvents che fa riferimento alla classe che genera l'evento. La routine di gestione degli eventi Sub utilizza 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
Per chiamare un gestore eventi mediante AddHandler
Verificare che l'evento venga dichiarato mediante un'istruzione Event.
Eseguire un'Istruzione AddHandler per collegare in modo dinamico la routine di gestione degli eventi Sub all'evento stesso.
Quando si verifica l'evento, la routine Sub viene chiamata automaticamente. Nel codice è possibile specificare un'istruzione RaiseEvent per generare l'evento.
Nell'esempio seguente viene definita una routine Sub per la gestione dell'evento Closing di un form. Viene quindi utilizzata l'Istruzione AddHandler per associare la routine catchClose come gestore eventi per Closing.
' Place these procedures inside a Form class definition. Private Sub catchClose(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) ' Insert code to deal with impending closure of this form. End Sub Public Sub formOpened() AddHandler Me.Closing, AddressOf catchClose End Sub
È possibile dissociare un gestore eventi da un evento mediante l'esecuzione dell'Istruzione RemoveHandler.
Vedere anche
Attività
Procedura: chiamare una routine che non restituisce un valore