Eventos e manipuladores de eventos
Enquanto você pode visualizar um projeto Visual Studio como uma série de procedimentos que executam em uma sequência, na realidade, a maioria dos programas são orientados a eventos — o que significa que o fluxo de execução é determinado pelas externas ocorrências chamadas eventos .
Um evento é um sinal que informa a um aplicativo que algo importante ocorreu.Por exemplo, quando um usuário clica em um controle em um formulário, o formulário pode lançar um evento Click e chamar um procedimento que manipula o evento.Eventos também permitem que tarefas separadas se comuniquem.Digamos que, por exemplo, seu aplicativo execute uma tarefa de classificação separadamente do aplicativo principal.Se um usuário cancelar a classificação, o aplicativo pode enviar um evento Cancelar instruindo o processo de classificação para parar.
Termos e Conceitos de Evento
Esta seção descreve os termos e conceitos usados com eventos em Visual Basic.
Declarando Eventos
Você declara eventos dentro de classes, estruturas, módulos e interfaces usando a palavra-chave Event, como no exemplo a seguir:
Event AnEvent(ByVal EventNumber As Integer)
Disparando Eventos
Um evento é como uma mensagem anunciando que algo importante ocorreu.O ato de transmitir a mensagem é chamado Disparo de evento.Em Visual Basic,você dispara eventos com a instrução RaiseEvent, como no exemplo a seguir:
RaiseEvent AnEvent(EventNumber)
Eventos devem ser disparados dentro do escopo da classe, módulo ou estrutura onde eles são declarados.Por exemplo, um classe derivada não pode disparar eventos herdados de um classe base.
Remetentes de Evento
Qualquer objeto capaz de dispara um evento é um Remetente de Evento ,também conhecido como uma fonte de evento .Formulários, controles e objetos definidos pelo usuário são exemplos de remetentes de eventos.
Manipuladores de Eventos
Manipuladores de eventos são procedimentos que são chamados quando ocorre um evento correspondente.Você pode usar qualquer sub-rotina válida com uma assinatura correspondente como um manipulador de eventos.Entretanto, você não pode usar uma função como um manipulador de eventos, porque ela não retorna um valor para a fonte de eventos.
Visual Basic usa uma convenção de nomeclatura padrão para manipuladores de eventos que combina o nome do remetente do evento, um sublinhado e o nome do evento.Por exemplo, o evento Click de um botão chamado button1 será nomeado Sub button1_Click.
Observação: |
---|
Recomendamos que você use esta convenção de nomeclatura quando definir manipuladores de eventos para seus próprios eventos, mas ela não é necessário; você pode usar qualquer nome de sub-rotina válido. |
Associando Eventos Manipuladores de Eventos
Antes uma manipulador de eventos se tornar útil, você deve primeiro associá-lo com um evento usando uma instrução Handles ou AddHandler.
A instrução WithEvents e a cláusula Handles fornecem uma maneira declarativa de especificar os manipuladores de eventos.Eventos disparados por um objeto declarado com WithEvents podem ser tratados por qualquer sub-rotina com uma cláusula Handles que nomeie este evento.Embora a cláusula Handles seja a maneira padrão de associar um manipulador de eventos com um evento, é limitada ao associar eventos com manipuladores de eventos em tempo de compilação.
As instruções AddHandler e RemoveHandler são mais flexíveis do que a cláusula Handles.Eles permitem que você dinamicamente conecte e desconecte os eventos de um ou mais manipuladores de eventos em tempo de execução, e não requerem que você declare variáveis de objeto usando WithEvents.No entanto, há algumas restrições ao usar WithEvents.Para obter mais informações, consulte WithEvents e Cláusula Handles.
Em alguns casos, como com os eventos associados com os formulários ou controles, Visual Basic automaticamente extingue um manipulador de eventos em branco e o associa com um evento.Por exemplo, quando você clica duas vezes em um botão de comando em um formulário no modo de design, Visual Basic cria um manipulador de eventos em branco e uma variável WithEvents para o botão de comando, como no código a seguir:
Friend WithEvents Button1 As System.Windows.Forms.Button
Protected Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
End Sub
Consulte também
Tarefas
Como: Escrever manipuladores evento