Cómo llamar a un controlador de eventos en Visual Basic
Un evento es una acción o repetición , como un clic del mouse o un límite de crédito superado, que reconoce algún componente de programa y para el que puede escribir código para responder. Un controlador de eventos es el código que escribe para responder a un evento.
Un controlador de eventos en Visual Basic es un Sub
procedimiento. Sin embargo, normalmente no lo llama de la misma manera que otros Sub
procedimientos. En su lugar, se identifica el procedimiento como controlador para el evento. Puedes hacerlo con una Handles
cláusula y una WithEvents
variable, o con una instrucción AddHandler. El uso de una cláusula Handles
es la manera predeterminada de declarar un controlador de eventos en Visual Basic. Esta es la forma en que los diseñadores escriben los controladores de eventos cuando programa en el entorno de desarrollo integrado (IDE). La instrucción AddHandler
es adecuada para generar eventos dinámicamente en tiempo de ejecución.
Cuando se produce el evento, Visual Basic llama automáticamente al procedimiento del controlador de eventos. Cualquier código que tenga acceso al evento puede hacer que se produzca ejecutando una instrucción RaiseEvent.
Puedes asociar más de un controlador de eventos con el mismo evento. En algunos casos, puedes desasociar un controlador de un evento. Para más información, vea Eventos.
Agregar un controlador de eventos usando Handles y WithEvents
Asegúrese de que el evento se declara con una instrucción de evento.
Declare una variable de objeto en el nivel de módulo o clase mediante la palabra clave
WithEvents
. La cláusulaAs
de esta variable debe especificar la clase que genera el evento.En la declaración del procedimiento de control
Sub
de eventos, agregue unaHandles
cláusula que especifique laWithEvents
variable y el nombre del evento.Cuando se produce el evento, Visual Basic llama automáticamente al procedimiento
Sub
. El código puede usar una instrucciónRaiseEvent
para que se produzca el evento.En el ejemplo siguiente se define un evento y una variable
WithEvents
que hace referencia a la clase que genera el evento. El procedimiento de controlSub
de eventos usa unaHandles
cláusula para especificar la clase y el evento que controla.Public Class RaisesEvent Public Event SomethingHappened() Dim WithEvents happenObj As New RaisesEvent Public Sub ProcessHappen() Handles happenObj.SomethingHappened ' Insert code to handle somethingHappened event. End Sub End Class
Agregar un controlador de eventos usando AddHandler
Asegúrate de que el evento se declara con una
Event
instrucción de evento.Ejecuta una instrucción AddHandler para conectar dinámicamente el procedimiento de control
Sub
de eventos con el evento.Cuando se produce el evento, Visual Basic llama automáticamente al procedimiento
Sub
. El código puede usar una instrucciónRaiseEvent
para que se produzca el evento.En el ejemplo siguiente se usa la instrucción AddHandler en el constructor para asociar el
OnFormClosing
procedimiento como controlador de eventos para FormClosing.Sub New() InitializeComponent() AddHandler Me.FormClosing, AddressOf OnFormClosing End Sub Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs) ' Insert code to deal with impending closure of this form. End Sub
Puedes desasociar un controlador de eventos de un evento ejecutando la instrucción RemoveHandler.