Sdílet prostřednictvím


Jak volat obslužnou rutinu 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 jej však nezavoláte stejným způsobem jako jiné Sub postupy. Místo toho identifikujete proceduru jako obslužnou funkci události. Můžete to provést buď pomocí Handles klauzule a WithEvents proměnné, nebo pomocí příkazu AddHandler. Použití klauzule Handles je výchozím způsobem 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í v čase běhu programu.

Když dojde k události, Visual Basic automaticky volá proceduru pro obsluhu 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řiřadit více obslužných rutin 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 části Události .

Pomocí Handles a WithEvents zavolejte obslužnou rutinu události

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

  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á příkaz AddHandler v konstruktoru k přidružení procedury OnFormClosing jako obslužné rutiny 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é