Compartir vía


Cláusula Handles (Visual Basic)

Declara que un procedimiento controla un evento especificado.

Sintaxis

proceduredeclaration Handles eventlist

Partes

proceduredeclaration Declaración Sub de procedimiento para el procedimiento que controlará el evento.

eventlist Lista de los eventos para proceduredeclaration controlar, separados por comas. Los eventos deben generarse mediante la clase base para la clase actual o mediante un objeto declarado mediante la WithEvents palabra clave .

Observaciones

Use la Handles palabra clave al final de una declaración de procedimiento para que controle los eventos generados por una variable de objeto declarada mediante la WithEvents palabra clave . La Handles palabra clave también se puede usar en una clase derivada para controlar eventos de una clase base.

La Handles palabra clave y la AddHandler instrucción permiten especificar que determinados procedimientos controlan eventos concretos, pero existen diferencias. Use la Handles palabra clave al definir un procedimiento para especificar que controla un evento determinado. La AddHandler instrucción conecta procedimientos a eventos en tiempo de ejecución. Para obtener más información, vea AddHandler Statement.

Para eventos personalizados, la aplicación invoca el descriptor de acceso del AddHandler evento cuando agrega el procedimiento como controlador de eventos. Para obtener más información sobre los eventos personalizados, vea Event Statement.

Ejemplo 1

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

En el ejemplo siguiente se muestra cómo una clase derivada puede usar la Handles instrucción para controlar un evento de una clase base.

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

Ejemplo 2

En el ejemplo siguiente se incluyen dos controladores de eventos de botón para un proyecto de aplicación de 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

Ejemplo 3

El ejemplo siguiente es equivalente al ejemplo anterior. En eventlist la Handles cláusula contiene los eventos de ambos botones.

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

Consulte también