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


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

Обновлен: Ноябрь 2007

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

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

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

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

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

    В следующем примере определяется процедура 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

Процедуры Sub

Ссылки

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

Оператор AddressOf