Een gebeurtenis-handler aanroepen in Visual Basic
Een gebeurtenis is een actie of gebeurtenis, zoals een muisklik of een tegoedlimiet overschreden, die wordt herkend door een programmaonderdeel en waarvoor u code kunt schrijven om te reageren. Een gebeurtenis-handler is de code die u schrijft om te reageren op een gebeurtenis.
Een gebeurtenis-handler in Visual Basic is een Sub
procedure. Normaal gesproken noemt u het echter niet op dezelfde manier als andere Sub
procedures. In plaats daarvan identificeert u de procedure als handler voor de gebeurtenis. U kunt dit doen met een Handles
component en een WithEvents
variabele, of met een AddHandler-instructie. Het gebruik van een Handles
component is de standaard manier om een gebeurtenis-handler in Visual Basic te declareren. Dit is de manier waarop de gebeurtenis-handlers door de ontwerpers worden geschreven wanneer u in de integrated development environment (IDE) programmeert. De AddHandler
instructie is geschikt voor het dynamisch genereren van gebeurtenissen tijdens runtime.
Wanneer de gebeurtenis plaatsvindt, roept Visual Basic automatisch de procedure voor de gebeurtenis-handler aan. Elke code die toegang heeft tot de gebeurtenis kan ertoe leiden dat deze zich voordoet door een RaiseEvent-instructie uit te voeren.
U kunt meer dan één gebeurtenishandler koppelen aan dezelfde gebeurtenis. In sommige gevallen kunt u een handler loskoppelen van een gebeurtenis. Zie Gebeurtenissen voor meer informatie.
Een gebeurtenis-handler aanroepen met behulp van Handles en WithEvents
Zorg ervoor dat de gebeurtenis is gedeclareerd met een gebeurtenisinstructie.
Declareer een objectvariabele op module- of klasseniveau met behulp van het
WithEvents
trefwoord. DeAs
component voor deze variabele moet de klasse opgeven die de gebeurtenis genereert.Voeg in de declaratie van de procedure voor gebeurtenisafhandeling
Sub
eenHandles
component toe waarmee deWithEvents
variabele en de gebeurtenisnaam worden opgegeven.Wanneer de gebeurtenis plaatsvindt, roept Visual Basic de
Sub
procedure automatisch aan. Uw code kan eenRaiseEvent
instructie gebruiken om de gebeurtenis te laten plaatsvinden.In het volgende voorbeeld worden een gebeurtenis en een
WithEvents
variabele gedefinieerd die verwijst naar de klasse die de gebeurtenis genereert. De procedure voor gebeurtenisafhandelingSub
maakt gebruik van eenHandles
component om de klasse en gebeurtenis op te geven die worden verwerkt.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
Een gebeurtenis-handler aanroepen met AddHandler
Zorg ervoor dat de gebeurtenis is gedeclareerd met een
Event
instructie.Voer een AddHandler-instructie uit om de procedure voor gebeurtenisafhandeling
Sub
dynamisch te verbinden met de gebeurtenis.Wanneer de gebeurtenis plaatsvindt, roept Visual Basic de
Sub
procedure automatisch aan. Uw code kan eenRaiseEvent
instructie gebruiken om de gebeurtenis te laten plaatsvinden.In het volgende voorbeeld wordt de Instructie AddHandler in de constructor gebruikt om de
OnFormClosing
procedure te koppelen als een gebeurtenis-handler voor 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
U kunt een gebeurtenishandler loskoppelen van een gebeurtenis door de RemoveHandler-instructie uit te voeren.