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


Практическое руководство. Вызов обработчика событий в Visual Basic

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

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

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

Можно связать несколько обработчиков событий с одним событием. В некоторых случаях можно отменить привязку обработчика к событию. Дополнительные сведения см. в разделе События (Visual Basic).

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

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

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

  3. В объявлении процедуры обработки события Sub добавьте предложение Предложение Handles (Visual Basic), которое задает значение переменной 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, чтобы создавать событие.

    В следующем примере определяется процедура Sub для обработки события формы Closing. Затем используется Оператор AddHandler, чтобы связать процедуру catchClose в качестве обработчика событий для Closing.

    ' Place these procedures inside a Form class definition.
    Private Sub catchClose(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
        ' Insert code to deal with impending closure of this form.
    End Sub
    Public Sub formOpened()
        AddHandler Me.Closing, AddressOf catchClose
    End Sub
    

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

См. также

Задачи

Практическое руководство. Создание процедуры (Visual Basic)

Практическое руководство. Вызов процедуры, которая не возвращает значение (Visual Basic)

Ссылки

Оператор Sub (Visual Basic)

Оператор AddressOf (Visual Basic)

Основные понятия

Процедуры в Visual Basic

Подпрограммы (Visual Basic)