Handles (Cláusula, Visual Basic)
Declara que un procedimiento controla un evento especificado.
Sintaxis
proceduredeclaration Handles eventlist
Partes
proceduredeclaration
La declaración de procedimiento Sub
del procedimiento que controlará el evento.
eventlist
Lista de los eventos que proceduredeclaration
debe controlar, separados por comas. Los eventos deben ser generados bien por la clase base de la clase actual o bien por un objeto declarado mediante la palabra clave WithEvents
.
Comentarios
Utilice la palabra clave Handles
al final de una declaración de procedimiento para que controle los eventos generados por una variable de objeto declarada mediante el uso de la palabra clave WithEvents
. La palabra clave Handles
también puede usarse en una clase derivada para controlar eventos de una clase base.
La palabra clave Handles
y la instrucción AddHandler
permiten especificar que determinados procedimientos controlen eventos determinados, pero hay diferencias. Use 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, consulte AddHandler (Instrucción).
Para los eventos personalizados, la aplicación invoca al descriptor de acceso AddHandler
del evento cuando agrega el procedimiento como un controlador de eventos. Para obtener más información acerca de los eventos personalizados, consulte Event (Instrucción).
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 siguiente ejemplo se demuestra cómo una clase derivada puede usar la instrucción Handles
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
El siguiente ejemplo contiene controladores de eventos de dos botones 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
Ejemplo 3
El siguiente ejemplo es equivalente al ejemplo anterior. El eventlist
en la cláusula Handles
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