El modelo de evento de .NET Framework se basa en la existencia de un delegado de eventos que conecte un evento a su controlador. Para provocar un evento, se requieren dos elementos:
El delegado es un tipo que define una firma, es decir, el tipo del valor devuelto y los tipos de lista de parámetros de un método. Se puede utilizar el tipo de delegado para declarar una variable que puede hacer referencia a cualquier método con la misma firma que el delegado.
La firma estándar de un delegado del controlador de eventos define un método que no devuelve ningún valor, cuyo primer parámetro es del tipo Object y hace referencia a la instancia que provoca el evento y cuyo segundo parámetro se deriva del tipo EventArgs y contiene los datos de evento. Si el evento no genera los datos de evento, el segundo parámetro simplemente es una instancia de EventArgs. De lo contrario, el segundo parámetro es un tipo personalizado derivado de EventArgs y proporciona los campos o las propiedades necesarias para contener los datos de evento.
EventHandler es un delegado predefinido que representa específicamente un método controlador para un evento que no genera datos. Si su evento genera datos, debe suministrar su propio tipo de datos de evento personalizado y crear un delegado donde el tipo del segundo parámetro sea el tipo personalizado o utilizar la clase de delegado genérico EventHandler y sustituir el tipo personalizado por el parámetro de tipo genérico.
Para asociar el evento al método que lo controlará, hay que agregar una instancia del delegado al evento. Siempre que se produce el evento, se llama al controlador de eventos, a menos que se quite el delegado.
Para obtener más información sobre los delegados del controlador de eventos, vea Eventos y delegados.