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

  1. Asegúrese de que el evento se declara con una instrucción de evento.

  2. Declare una variable de objeto en el nivel de módulo o clase mediante la palabra clave WithEvents. La cláusula As de esta variable debe especificar la clase que genera el evento.

  3. En la declaración del procedimiento de control Sub de eventos, agregue una Handles cláusula que especifique la WithEvents variable y el nombre del evento.

  4. Cuando se produce el evento, Visual Basic llama automáticamente al procedimiento Sub. El código puede usar una instrucción RaiseEvent para que se produzca el evento.

    En el ejemplo siguiente se define un evento y una variable WithEventsque hace referencia a la clase que genera el evento. El procedimiento de control Sub de eventos usa una Handles 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

  1. Asegúrate de que el evento se declara con una Eventinstrucción de evento.

  2. Ejecuta una instrucción AddHandler para conectar dinámicamente el procedimiento de control Sub de eventos con el evento.

  3. Cuando se produce el evento, Visual Basic llama automáticamente al procedimiento Sub. El código puede usar una instrucción RaiseEvent 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.

Consulte también