Udostępnij za pośrednictwem


Jak wywołać procedurę obsługi zdarzeń w Visual Basic

Zdarzenie jest akcją lub zdarzeniem — takim jak kliknięcie myszą lub przekroczenie limitu kredytowego — rozpoznawane przez jakiś składnik programu, na które można napisać kod, aby zareagować. Procedura obsługi zdarzeń to kod, który piszesz w celu reagowania na zdarzenie.

Procedura obsługi zdarzeń w Visual Basic jest procedurą Sub . Jednak zwykle nie nazywa się go tak samo jak inne Sub procedury. Zamiast tego należy zidentyfikować procedurę jako procedurę obsługi zdarzenia. Można to zrobić za pomocą klauzuli Handles i zmiennej WithEvents lub instrukcji AddHandler. Używanie klauzuli Handles jest domyślnym sposobem deklarowania programu obsługi zdarzeń w Visual Basic. Jest to sposób, w jaki programy obsługi zdarzeń są zapisywane przez projektantów podczas programowania w zintegrowanym środowisku projektowym (IDE). Instrukcja AddHandler jest odpowiednia do dynamicznego wyzwalania zdarzeń w czasie wykonywania.

Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę obsługi zdarzeń. Każdy kod, który ma dostęp do zdarzenia, może spowodować jego wystąpienie, wykonując instrukcję RaiseEvent.

Można skojarzyć więcej niż jedną procedurę obsługi zdarzeń z tym samym zdarzeniem. W niektórych przypadkach można oddzielić procedurę obsługującą od zdarzenia. Aby uzyskać więcej informacji, zobacz Events.

Wywoływanie programu obsługi zdarzeń przy użyciu polecenia Handles i WithEvents

  1. Upewnij się, że zdarzenie zostało zadeklarowane za pomocą instrukcji event.

  2. Zadeklaruj zmienną obiektu na poziomie modułu lub klasy przy użyciu słowa kluczowego WithEvents . Klauzula As dla tej zmiennej musi określać klasę, która zgłasza zdarzenie.

  3. W deklaracji procedury obsługi Sub zdarzeń dodaj klauzulę Handles określającą zmienną WithEvents i nazwę zdarzenia.

  4. Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę Sub . Kod może użyć RaiseEvent instrukcji , aby zdarzenie miało miejsce.

    W poniższym przykładzie zdefiniowano zdarzenie i zmienną WithEvents odwołującą się do klasy, która wywołuje zdarzenie. Procedura obsługi zdarzeń Sub używa klauzuli , aby określić klasę Handles i zdarzenie, które obsługuje.

    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
    

Wywoływanie programu obsługi zdarzeń przy użyciu programu AddHandler

  1. Upewnij się, że zdarzenie zostało zadeklarowane za pomocą oświadczenia Event.

  2. Wykonaj instrukcję AddHandler , aby dynamicznie połączyć procedurę obsługi Sub zdarzeń ze zdarzeniem.

  3. Po wystąpieniu zdarzenia program Visual Basic automatycznie wywołuje procedurę Sub . Kod może użyć RaiseEvent instrukcji , aby zdarzenie miało miejsce.

    W poniższym przykładzie użyto instrukcji AddHandler w konstruktorze, aby skojarzyć OnFormClosing procedurę jako procedurę obsługi zdarzeń dla elementu 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
    

    Można odłączyć program obsługi zdarzeń od zdarzenia, wykonując instrukcję RemoveHandler.

Zobacz także