Eventos (Guia de Programação em C#)Events (C# Programming Guide)

Eventos permitem que uma classe ou objeto notifique outras classes ou objetos quando algo interessante ocorre.Events enable a class or object to notify other classes or objects when something of interest occurs. A classe que envia (ou aciona) o evento é chamada de editor e as classes que recebem (ou manipulam) os eventos são chamadas assinantes.The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers.

Em um aplicativo Windows Forms em C# ou Web típico, você assina eventos acionados pelos controles, como botões e caixas de listagem.In a typical C# Windows Forms or Web application, you subscribe to events raised by controls such as buttons and list boxes. Você pode usar o IDE (ambiente de desenvolvimento integrado) do Visual C# para procurar os eventos que um controle publica e selecionar aqueles que você deseja manipular.You can use the Visual C# integrated development environment (IDE) to browse the events that a control publishes and select the ones that you want to handle. O IDE adiciona automaticamente um método de manipulador de eventos vazio e o código para assinar o evento.The IDE automatically adds an empty event handler method and the code to subscribe to the event. Para obter mais informações, consulte Como realizar e cancelar a assinatura de eventos.For more information, see How to: Subscribe to and Unsubscribe from Events.

Visão geral sobre eventosEvents Overview

Os eventos têm as seguintes propriedades:Events have the following properties:

  • O editor determina quando um evento é acionado. Os assinantes determinam a ação que é executada em resposta ao evento.The publisher determines when an event is raised; the subscribers determine what action is taken in response to the event.

  • Um evento pode ter vários assinantes.An event can have multiple subscribers. Um assinante pode manipular vários eventos de vários publicadores.A subscriber can handle multiple events from multiple publishers.

  • Eventos que não têm assinantes nunca são acionados.Events that have no subscribers are never raised.

  • Normalmente, os eventos são usados para sinalizar ações do usuário, como cliques de botão ou seleções de menu em interfaces gráficas do usuário.Events are typically used to signal user actions such as button clicks or menu selections in graphical user interfaces.

  • Quando um evento tem vários assinantes, os manipuladores de eventos são invocados sincronicamente quando um evento é acionado.When an event has multiple subscribers, the event handlers are invoked synchronously when an event is raised. Para invocar eventos de forma assíncrona, consulte Chamando métodos síncronos assincronamente.To invoke events asynchronously, see Calling Synchronous Methods Asynchronously.

  • Na biblioteca de classes do .NET Framework.NET Framework, os eventos são baseados no delegado EventHandler e na classe base EventArgs.In the .NET Framework.NET Framework class library, events are based on the EventHandler delegate and the EventArgs base class.

Para obter mais informações, consulte:For more information, see:

Especificação da Linguagem C#C# Language Specification

Para obter mais informações, consulte a Especificação da linguagem C#.For more information, see the C# Language Specification. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.The language specification is the definitive source for C# syntax and usage.

Expressões lambda, eventos e delegados em C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmersDelegates, Events, and Lambda Expressions in C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers

Delegados e eventos em Learning C# 3.0: Master the fundamentals of C# 3.0Delegates and Events in Learning C# 3.0: Master the fundamentals of C# 3.0

Consulte tambémSee Also

EventHandler
Guia de Programação em C#C# Programming Guide
DelegadosDelegates
Criando manipuladores de eventos no Windows FormsCreating Event Handlers in Windows Forms
Programação multi-threaded com o padrão assíncrono baseado em eventoMultithreaded Programming with the Event-based Asynchronous Pattern