Sdílet prostřednictvím


Volání obslužné rutiny události v jazyce Visual Basic

Událost je akce nebo výskyt , například kliknutí myší nebo překročení limitu kreditu – rozpoznaný nějakou komponentou programu a pro který můžete napsat kód, který má reagovat. Obslužná rutina události je kód, který napíšete pro reakci na událost.

Obslužná rutina události v jazyce Visual Basic je procedura Sub . Obvykle ho ale nezavoláte stejným způsobem jako jiné Sub postupy. Místo toho identifikujete proceduru jako obslužnou rutinu události. Můžete to provést buď pomocí Handles klauzule a WithEvents proměnné, nebo pomocí příkazu AddHandler. Handles Použití klauzule je výchozí způsob deklarace obslužné rutiny události v jazyce Visual Basic. To je způsob, jakým obslužné rutiny událostí zapisují návrháři, když programujete v integrovaném vývojovém prostředí (IDE). Příkaz AddHandler je vhodný pro dynamické generování událostí za běhu.

Když dojde k události, Visual Basic automaticky volá proceduru obslužné rutiny události. Jakýkoli kód, který má přístup k události, může způsobit jeho výskyt spuštěním příkazu RaiseEvent.

Ke stejné události můžete přidružit více než jednu obslužnou rutinu události. V některých případech můžete zrušit přidružení obslužné rutiny k události. Další informace naleznete v tématu Události.

Volání obslužné rutiny události pomocí Handles a WithEvents

  1. Ujistěte se, že je událost deklarována příkazem události.

  2. Deklarujte proměnnou objektu na úrovni modulu nebo třídy pomocí klíčového WithEvents slova. Klauzule As pro tuto proměnnou musí určovat třídu, která vyvolá událost.

  3. Do deklarace procedury zpracování Sub událostí přidejte Handles klauzuli, která určuje WithEvents proměnnou a název události.

  4. Když dojde k události, Visual Basic automaticky volá proceduru Sub . Váš kód může použít RaiseEvent příkaz k provedení události.

    Následující příklad definuje událost a proměnnou WithEvents , která odkazuje na třídu, která vyvolá událost. Procedura zpracování Sub událostí používá Handles klauzuli k určení třídy a události, které zpracovává.

    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
    

Volání obslužné rutiny události pomocí rutiny AddHandler

  1. Ujistěte se, že je událost deklarována příkazem Event .

  2. Spuštěním příkazu AddHandler dynamicky propojíte proceduru zpracování Sub událostí s událostí.

  3. Když dojde k události, Visual Basic automaticky volá proceduru Sub . Váš kód může použít RaiseEvent příkaz k provedení události.

    Následující příklad používá AddHandler příkaz v konstruktoru přidružit proceduru OnFormClosing jako obslužnou rutinu události pro 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
    

    Obslužnou rutinu události můžete zrušit spuštěním příkazu RemoveHandler.

Viz také