Compartir a través de


Cómo llamar a un controlador de eventos en Visual Basic

Un evento es una acción u ocurrencia —como un clic del ratón o un límite de crédito superado— que es reconocida por algún componente del programa, y para el cual puede escribir código para responder. Un controlador de eventos es el código que se 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 Handles cláusula 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 al programar 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 de controlador de eventos. Cualquier código que tenga acceso al evento puede provocar que se produzca mediante la ejecución de una instrucción RaiseEvent.

Puede asociar más de un controlador de eventos con el mismo evento. En algunos casos, puedes desasociar un controlador de un evento. Para obtener más información, vea Eventos.

Llamada a un controlador de eventos mediante Handles y WithEvents

  1. Asegúrese de que el evento se declara con una Event Statement.

  2. Declare una variable de objeto en el nivel de módulo o clase mediante la WithEvents palabra clave . La As cláusula 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 Sub procedimiento. El código puede usar una RaiseEvent instrucción para que se produzca el evento.

    En el ejemplo siguiente se define un evento y una WithEvents variable que 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
    

Llamada a un controlador de eventos mediante AddHandler

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

  2. Ejecute 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 Sub procedimiento. El código puede usar una RaiseEvent instrucción 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
    

    Puede desasociar un controlador de eventos de un evento ejecutando la instrucción RemoveHandler.

Consulte también