Поделиться через


Вызов обработчика событий в Visual Basic

Событие — это действие или происшествие, например, щелчок мыши или превышение кредитного лимита, которое распознается некоторыми компонентами программы, и для которых можно написать ответный код. Обработчик событий — это код, который вы пишете для реагирования на событие.

Обработчик событий в Visual Basic — это Sub процедура. Однако, обычно вы не вызываете её так же, как другие Sub процедуры. Вместо этого вы определяете процедуру как обработчик события. Это можно сделать с предложением Handles и переменной WithEvents или с помощью инструкции AddHandler. Использование конструкции Handles — это стандартный способ объявления обработчика событий в Visual Basic. Это способ написания обработчиков событий конструкторами при программе в интегрированной среде разработки (IDE). Оператор AddHandler подходит для динамического вызова событий во время выполнения.

При возникновении события Visual Basic автоматически вызывает процедуру обработчика событий. Любой код, имеющий доступ к событию, может привести к его возникновению путем выполнения инструкции RaiseEvent.

С одним и тем же событием можно связать несколько обработчиков событий. В некоторых случаях можно отвязать обработчик от события. Для получения дополнительной информации см. в событиях .

Вызов обработчика событий с помощью Handles и WithEvents

  1. Убедитесь, что событие объявлено с помощью оператора Event.

  2. Объявите переменную объекта на уровне модуля или класса с помощью ключевого WithEvents слова. Предложение As для этой переменной должно указывать класс, который вызывает событие.

  3. В объявлении процедуры обработки Sub событий добавьте Handles предложение, указывающее WithEvents переменную и имя события.

  4. При возникновении события Visual Basic автоматически вызывает процедуру Sub . Код может использовать инструкцию RaiseEvent для выполнения события.

    В следующем примере определяется событие и WithEvents переменная, ссылающаяся на класс, который вызывает событие. Процедура обработки Sub событий использует Handles предложение, чтобы указать класс и событие, которые она обрабатывает.

    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
    

Вызов обработчика событий с помощью AddHandler

  1. Убедитесь, что событие объявлено с помощью инструкции Event .

  2. Выполните инструкцию AddHandler , чтобы динамически подключить процедуру обработки Sub событий к событию.

  3. При возникновении события Visual Basic автоматически вызывает процедуру Sub . Код может использовать инструкцию RaiseEvent для выполнения события.

    В следующем примере инструкция AddHandler в конструкторе используется для связывания процедуры OnFormClosing в качестве обработчика событий 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
    

    Вы можете отключить обработчик событий от события, выполнив инструкцию RemoveHandler.

См. также