Delen via


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

  1. Zorg ervoor dat de gebeurtenis is gedeclareerd met een gebeurtenisinstructie.

  2. Declareer een objectvariabele op module- of klasseniveau met behulp van het WithEvents trefwoord. De As component voor deze variabele moet de klasse opgeven die de gebeurtenis genereert.

  3. Voeg in de declaratie van de procedure voor gebeurtenisafhandeling Sub een Handles component toe waarmee de WithEvents variabele en de gebeurtenisnaam worden opgegeven.

  4. Wanneer de gebeurtenis plaatsvindt, roept Visual Basic de Sub procedure automatisch aan. Uw code kan een RaiseEvent 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 gebeurtenisafhandeling Sub maakt gebruik van een Handles 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

  1. Zorg ervoor dat de gebeurtenis is gedeclareerd met een Event instructie.

  2. Voer een AddHandler-instructie uit om de procedure voor gebeurtenisafhandeling Sub dynamisch te verbinden met de gebeurtenis.

  3. Wanneer de gebeurtenis plaatsvindt, roept Visual Basic de Sub procedure automatisch aan. Uw code kan een RaiseEvent 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.

Zie ook