Handles (Cláusula, Visual Basic)

Declara que un procedimiento controla un evento especificado.

proceduredeclaration Handles eventlist

Elementos

  • proceduredeclaration
    La declaración del procedimiento Sub del procedimiento que controlará el evento.

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

Comentarios

Use la palabra clave Handles al final de una declaración de procedimiento para hacer que controle eventos provocados por una variable de objeto declarada con la palabra clave WithEvents.La palabra clave Handles también puede utilizarse en una clase derivada para controlar eventos de una clase base.

La firma del procedimiento debe coincidir con las firmas de cada evento contenido en eventlist.

La palabra clave Handles y la instrucción AddHandler permiten especificar que ciertos procedimientos controlen eventos determinados, pero hay diferencias entre ambos.Utilice la palabra clave Handles al definir un procedimiento para especificar que controla un evento determinado.La instrucción AddHandler conecta los procedimientos a los eventos en tiempo de ejecución.Para obtener más información, vea AddHandler (Instrucción).

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

Ejemplo

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 siguiente ejemplo se muestra cómo una clase derivada puede utilizar la instrucción Handles para controlar un evento desde 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

El ejemplo siguiente contiene dos controladores de eventos de botón para un proyecto de Aplicación 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

El ejemplo siguiente es equivalente al ejemplo anterior.El objeto eventlist de la cláusula Handles contiene los eventos para 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

Vea también

Referencia

WithEvents (Visual Basic)

AddHandler (Instrucción)

RemoveHandler (Instrucción)

Event (Instrucción)

RaiseEvent (Instrucción)

Otros recursos

Eventos (Visual Basic)