Вызов обработчика событий в Visual Basic
Событие является действием или вхождением, например щелчком мыши или превышен кредитным ограничением, которое распознается некоторыми компонентами программы, и для которых можно написать код для ответа. Обработчик событий — это код, который вы пишете для реагирования на событие.
Обработчик событий в Visual Basic — это Sub
процедура. Однако обычно это не так же, как и другие Sub
процедуры. Вместо этого вы определяете процедуру как обработчик события. Это можно сделать с предложением Handles
и переменной WithEvents
или с помощью инструкции AddHandler. Handles
Использование предложения — это способ объявления обработчика событий по умолчанию в Visual Basic. Это способ написания обработчиков событий конструкторами при программе в интегрированной среде разработки (IDE). Оператор AddHandler
подходит для динамического вызова событий во время выполнения.
При возникновении события Visual Basic автоматически вызывает процедуру обработчика событий. Любой код, имеющий доступ к событию, может привести к его возникновению путем выполнения инструкции RaiseEvent.
С одним и тем же событием можно связать несколько обработчиков событий. В некоторых случаях обработчик можно отсооблять от события. Для получения дополнительной информации см. Events.
Вызов обработчика событий с помощью Handles и WithEvents
Убедитесь, что событие объявлено с помощью инструкции event.
Объявите переменную объекта на уровне модуля или класса с помощью
WithEvents
ключевое слово. ПредложениеAs
для этой переменной должно указывать класс, который вызывает событие.В объявлении процедуры обработки
Sub
событий добавьтеHandles
предложение, указывающееWithEvents
переменную и имя события.При возникновении события 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
Убедитесь, что событие объявлено с помощью инструкции
Event
.Выполните инструкцию AddHandler, чтобы динамически подключить процедуру обработки
Sub
событий к событию.При возникновении события 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.