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


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

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

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

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

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

Вызов обработчика событий с помощью 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.

См. также