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