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
Kontrollera att händelsen har deklarerats med en händelseuttryck.
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.I deklarationen av händelsehanteringsproceduren
Sub
lägger du till enHandles
sats som anger variabelnWithEvents
och händelsenamnet.När händelsen inträffar anropar Visual Basic automatiskt proceduren
Sub
. Din kod kan använda enRaiseEvent
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ändelsehanteringsprocedurenSub
använder enHandles
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
Kontrollera att händelsen har deklarerats med en
Event
-instruktion.Kör en AddHandler-instruktion för att dynamiskt ansluta händelsehanteringsproceduren
Sub
till händelsen.När händelsen inträffar anropar Visual Basic automatiskt proceduren
Sub
. Din kod kan använda enRaiseEvent
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.