Compartilhar via


Como chamar um manipulador de eventos no Visual Basic

Um evento é uma ação ou ocorrência , como um clique do mouse ou um limite de crédito excedido, que é reconhecido por algum componente do programa e para o qual você pode escrever código para responder. Um manipulador de eventos é o código que você escreve para responder a um evento.

Um manipulador de eventos no Visual Basic é um procedimento Sub. No entanto, você normalmente não chama isso da mesma maneira que outros procedimentos Sub. Em vez disso, você identifica o procedimento como um manipulador para o evento. Você pode fazer isso com uma cláusula Handles e uma variável WithEvents ou com uma Instrução AddHandler. Usar uma cláusula Handles é a maneira padrão de declarar um manipulador de eventos no Visual Basic. Essa é a maneira como os manipuladores de eventos são escritos pelos designers quando você programa no IDE (ambiente de desenvolvimento integrado). A instrução AddHandler é adequada para gerar eventos dinamicamente em tempo de execução.

Quando o evento ocorre, o Visual Basic chama automaticamente o procedimento do manipulador de eventos. Qualquer código que tenha acesso ao evento pode fazer com que ele ocorra executando uma Instrução RaiseEvent.

Você pode associar mais de um manipulador de eventos ao mesmo evento. Em alguns casos, você pode dissociar um manipulador de um evento. Para obter mais informações, consulte Eventos.

Chamar um manipulador de eventos usando Handles e WithEvents

  1. Verifique se o evento foi declarado com uma Instrução de Evento.

  2. Declare uma variável de objeto no nível do módulo ou da classe, usando a palavra-chave WithEvents. A cláusula As dessa variável deve especificar a classe que gera o evento.

  3. Na declaração do procedimento de tratamento de eventos Sub, adicione uma cláusula Handles que especifica a variável WithEvents e o nome do evento.

  4. Quando o evento ocorre, o Visual Basic chama automaticamente o procedimento Sub. Seu código pode usar uma instrução RaiseEvent para fazer o evento ocorrer.

    O exemplo a seguir define um evento e uma variável WithEvents que se referem à classe que gera o evento. O procedimento de tratamento de eventos Sub usa uma cláusula Handles para especificar a classe e o evento que ele manipula.

    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
    

Chamar um manipulador de eventos usando AddHandler

  1. Verifique se o evento foi declarado com uma instrução Event.

  2. Execute uma instrução AddHandler para conectar dinamicamente o procedimento de tratamento de eventos Sub com o evento.

  3. Quando o evento ocorre, o Visual Basic chama automaticamente o procedimento Sub. Seu código pode usar uma instrução RaiseEvent para fazer o evento ocorrer.

    O exemplo a seguir usa a instrução AddHandler no construtor para associar o procedimento OnFormClosing como um manipulador 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
    

    Você pode dissociar um manipulador de eventos de um evento executando a instrução RemoveHandler.

Confira também