Compartilhar via


Visão Geral dos Eventos (Formulários do Windows)

Um evento é uma ação a que você pode responder, ou "manipular", em código. Os eventos podem ser gerados por uma ação do usuário, como clicar com o mouse ou pressionar um tecla; por código de programa; ou pelo sistema.

Aplicações orientadas a eventos executam código em resposta a eventos. Cada formulário e controle exibe um conjunto pré-definido de eventos aos quais você pode responder por meio de programação. Se um destes eventos ocorre e existe código no manipulador de eventos associado, este código é invocado.

Os tipos de eventos gerados por um objeto variam, mas muitos tipos são comuns à maioria dos controles. Por exemplo, a maioria dos objetos manipularão um evento Click. Se o usuário clicar em um formulário, o código no evento Click do formulário é executado.

ObservaçãoObservação

Muitos eventos ocorrem em conjunto com outros eventos. Por exemplo, no curso da ocorrência do evento DoubleClick ocorrem os eventos MouseDown, MouseUp e Click.

Para informações sobre como gerar e consumir um evento, consulte Como: Gerar e consumir eventos. Para um exemplo sobre como conectar manipuladores de eventos e métodos, consulte Como: Conectar os métodos do manipulador de eventos a eventos.

Destinos e Seu Papel

Destinos são classes comumente usadas no .NET Framework para construir mecanismos internos de manipulação de eventos. Destinos são como ponteiros para funções, comumente usados em Visual C++ e outras linguagens orientadas a objetos. No entanto, ao contrário de ponteiros de funções, destinos são orientados a objetos, tem segurança de tipo e são seguros. Além disto, enquanto um ponteiro de função contém apenas uma referência para uma função em particular, um destino consiste em uma referência a um objeto e referências a um ou mais métodos do objeto.

Um modelo de eventos uma destinos para vincular eventos aos métodos usados para manupulá-los. Os destinos permitem que outras classes registrem-se para notificação de eventos através da especificação de um método maniulador. Quando o evento ocorre, o destino chama o método vinculado. Para mais informações sobre como definir destinos, consulte Eventos e representantes.

Destinos podem ser vinculados a um único método ou múltiplos métodos, constituindo neste caso um "musticast". Quando criar um destino para um evento, você (ou o designer de Formulários do Windows) tipicamente cria um evento multicast. Uma rara ecxeção poderia ser um evento que resulta em um procedimento específico (como exibir uma caixa de diálogo) que não repetiria logicamente por várias vezes por evento. Para informações sobre como criar destinos multicast, consulte Como: Combinar representantes (Representantes Multicast) (Guia de programação C#).

Um destino multicast mantém uma lista de invocação dos métodos a que ele está vinculado. O destino multicast suporta um método Combine que adiciona um método à lista de invocação e um método Remove que o remove.

Quando um evento é identificado pelo aplicativo, o controle gera o evento invocando o destino deste evento. O destino da vez chama o método vinculado. No caso mais comum (um destino multicast), o destino chama cada método vinculado da vez na lista de invocação, o que provoca uma notificação um para muitos. Esta estratégia significa que um controle não precisa manter uma lista de objetos alvo para notificação de eventos — o destino manipula todos os registros e notificações.

Destinos também permitem que múltiplos eventos sejam vinculados ao mesmo método, permitindo notificação muitos para um. Por exemplo, um evento de clique de botão e um evento de clique em menu de comando podem ambos invocar o mesmo destino, o qual então chama um único método para manipular estes eventos separados da mesma forma.

O mecanismo de ligação utilizado com delegados é dinâmico: um delegado pode ser vinculado em tempo de execução para qualquer método cuja assinatura corresponde do manipulador de eventos. Com este recurso, você pode definir ou mudar o método vinculado dependendo em alguma condição e pode dinamicamente ligar um manipulador de eventos a um controle.

Consulte também

Conceitos

Visão geral dos Manipuladores de Eventos (Formulários do Windows)

Outros recursos

Criando Manipuladores de Eventos nos Formulários do Windows