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


Предложение Handles (Visual Basic)

Объявляет, что процедура обрабатывает указанное событие.

proceduredeclaration Handles eventlist

Части

  • proceduredeclaration
    Объявление подпрограммы Sub для процедуры, которая будет обрабатывать ошибку.

  • eventlist
    Список событий для обработки процедурой proceduredeclaration, разделенных запятыми.Это событие должно вызываться либо базовым классом текущего класса, либо объектом, объявленным с помощью ключевого слова WithEvents.

Заметки

Используйте ключевое слово Handles в конце объявления процедуры, чтобы задать ее для обработки событий, вызванных переменной объекта, которая объявлена с помощью ключевого слова WithEvents.Ключевое слово Handles также может быть использовано в производном классе для обработки событий базового класса.

Сигнатура процедуры должна соответствовать сигнатуре каждого события в eventlist.

Ключевое слово Handles и оператор AddHandler позволяют задать конкретные процедуры обработки определенных событий, но между ними существуют различия.Ключевое слово Handles используется при определении процедуры, чтобы указать, что она будет обрабатывать конкретное событие.Оператор AddHandler подключает процедуры для событий во время выполнения.Дополнительные сведения см. в разделе Оператор AddHandler.

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

Пример

Public Class ContainerClass
    ' Module or class level declaration.
    WithEvents Obj As New Class1

    Public Class Class1
        ' Declare an event.
        Public Event Ev_Event()
        Sub CauseSomeEvent()
            ' Raise an event.
            RaiseEvent Ev_Event()
        End Sub
    End Class

    Sub EventHandler() Handles Obj.Ev_Event
        ' Handle the event.
        MsgBox("EventHandler caught event.")
    End Sub

    ' Call the TestEvents procedure from an instance of the ContainerClass 
    ' class to test the Ev_Event event and the event handler.
    Public Sub TestEvents()
        Obj.CauseSomeEvent()
    End Sub
End Class

В следующем примере показано, как производный класс может использовать оператор Handles для обработки событий базового класса:

Public Class BaseClass
    ' Declare an event.
    Event Ev1()
End Class
Class DerivedClass
    Inherits BaseClass
    Sub TestEvents() Handles MyBase.Ev1
        ' Add code to handle this event.
    End Sub
End Class

В следующем примере содержатся два обработчика событий кнопки для проекта приложения WPF.

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

Следующий пример эквивалентен предыдущему примеру.предложение eventlist в Handles содержит событий для обеих кнопок.

Private Sub Button_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click, Button2.Click
    MessageBox.Show(sender.Name & " clicked")
End Sub

См. также

Ссылки

WithEvents (Visual Basic)

Оператор AddHandler

Оператор RemoveHandler

Оператор Event

Оператор RaiseEvent

Другие ресурсы

События (Visual Basic)