Dela via


Anropa en händelsehanterare i Visual Basic

En händelse är en åtgärd eller förekomst – till exempel en musklickning eller en kreditgräns som överskrids – som identifieras av någon programkomponent och som du kan skriva kod för att svara på. En händelsehanterare är den kod som du skriver för att svara på en händelse.

En händelsehanterare i Visual Basic är en Sub procedur. Du brukar dock inte kalla det på samma sätt som andra Sub procedurer. I stället identifierar du proceduren som hanterare för händelsen. Du kan göra detta antingen med en Handles sats och en WithEvents variabel eller med en AddHandler-instruktion. Att använda en Handles sats är standardsättet för att deklarera en händelsehanterare i Visual Basic. Det är så händelsehanterarna skrivs av designers när du programmerar i den integrerade utvecklingsmiljön (IDE). -instruktionen AddHandler är lämplig för att höja händelser dynamiskt vid körning.

När händelsen inträffar anropar Visual Basic automatiskt händelsehanterarproceduren. All kod som har åtkomst till händelsen kan orsaka att den inträffar genom att köra en RaiseEvent-instruktion.

Du kan associera mer än en händelsehanterare med samma händelse. I vissa fall kan du koppla bort en hanterare från en händelse. Mer information finns i Händelser.

Anropa en händelsehanterare med och HandlesWithEvents

  1. Kontrollera att händelsen har deklarerats med en händelseuttryck.

  2. Deklarera en objektvariabel på modul- eller klassnivå med hjälp av nyckelordet WithEvents . As Satsen för den här variabeln måste ange den klass som genererar händelsen.

  3. I deklarationen av händelsehanteringsproceduren Sub lägger du till en Handles sats som anger variabeln WithEvents och händelsenamnet.

  4. När händelsen inträffar anropar Visual Basic automatiskt proceduren Sub . Din kod kan använda en RaiseEvent instruktion för att få händelsen att inträffa.

    I följande exempel definieras en händelse och en WithEvents variabel som refererar till klassen som genererar händelsen. Händelsehanteringsproceduren Sub använder en Handles sats för att ange vilken klass och händelse den hanterar.

    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
    

Anropa en händelsehanterare med Hjälp av AddHandler

  1. Kontrollera att händelsen har deklarerats med en Event -instruktion.

  2. Kör en AddHandler-instruktion för att dynamiskt ansluta händelsehanteringsproceduren Sub till händelsen.

  3. När händelsen inträffar anropar Visual Basic automatiskt proceduren Sub . Din kod kan använda en RaiseEvent instruktion för att få händelsen att inträffa.

    I följande exempel används AddHandler-instruktionen i konstruktorn för att associera proceduren OnFormClosing som händelsehanterare för 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
    

    Du kan koppla bort en händelsehanterare från en händelse genom att köra RemoveHandler-instruktionen.

Se även