Udostępnij za pośrednictwem


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

Zdarzenie jest akcją lub wystąpieniem — takim jak kliknięcie myszą lub przekroczono limit środków — rozpoznawany przez jakiś składnik programu i dla którego można napisać kod, aby odpowiedzieć. 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 jest odpowiednia AddHandler do dynamicznego podnoszenia 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 odciąć skojarzenie programu obsługi ze zdarzenia. Aby uzyskać więcej informacji, zobacz Zdarzenia.

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ę określającą WithEvents zmienną Handles 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ą instrukcji 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 usunąć skojarzenie programu obsługi zdarzeń ze zdarzenia, wykonując instrukcję RemoveHandler.

Zobacz też