Vue d'ensemble des événements (Windows Forms)

Un événement est une action à laquelle vous pouvez répondre ou que vous pouvez « gérer » dans le code. Les événements peuvent être déclenchés par une action de l'utilisateur (quand il clique sur un bouton de la souris ou appuie sur une touche), par le code d'un programme ou par le système.

Les applications pilotées par événements exécutent du code en réponse à un événement. Chaque formulaire et chaque contrôle exposent un ensemble prédéfini d'événements que vous pouvez programmer. Si l'un de ces événements se produit et que le gestionnaire d'événements associé contient du code, celui-ci est appelé.

Les types d'événements déclenchés par un objet sont divers, mais bon nombre d'entre eux sont communs à la plupart des contrôles. Par exemple, la plupart des objets peuvent gérer un événement Click. Si un utilisateur clique sur un formulaire, le code du gestionnaire de l'événement Click de ce dernier est exécuté.

Remarque

De nombreux événements se produisent conjointement à d'autres événements. Par exemple, les événements DoubleClick, MouseDown et MouseUp se produisent en même temps que l'événement Click.

Pour plus d’informations sur la façon de déclencher et de consommer un événement, consultez Événements.

Rôle des délégués

Les délégués sont des classes couramment utilisées dans le .NET Framework pour créer des mécanismes de gestion des événements. Les délégués correspondent approximativement aux pointeurs de fonction, couramment utilisés dans Visual C++ et d’autres langages orientés objet. Toutefois à la différence des pointeurs de fonction, les délégués sont orientés objet, de type sécurisé et sûrs. De plus, alors qu'un pointeur de fonction ne contient qu'une référence à une fonction spécifique, un délégué consiste en une référence à un objet et des références à une ou plusieurs méthodes de cet objet.

Ce modèle d’événements utilise des délégués pour lier des événements aux méthodes utilisées pour les gérer. Le délégué permet aux autres classes de s'inscrire pour la notification d'événement en spécifiant une méthode de gestionnaire. Quand l'événement se produit, le délégué appelle la méthode liée. Pour plus d’informations sur la définition des délégués, consultez Événements.

Les délégués peuvent être liés à une ou plusieurs méthodes (ou multidiffusion). Lors de la création d’un délégué pour un événement, vous (ou Windows) créez généralement un événement de multidiffusion. Il existe cependant une exception à cette règle : quand un événement déclenche une procédure particulière (par exemple, l'affichage d'une boîte de dialogue) qui logiquement ne se répéterait pas plusieurs fois par événement. Pour plus d’informations sur la création d’un délégué multidiffusion, consultez Comment combiner des délégués (délégués multidiffusion).

Un délégué multidiffusion tient à jour une liste d'appel des méthodes auxquelles il est lié. Celui-ci prend en charge une méthode Combine pour ajouter une méthode à la liste d'appel et une méthode Remove pour la supprimer.

Quand un événement est enregistré par l'application, le contrôle le déclenche en appelant son délégué. Le délégué appelle à son tour la méthode liée. Dans le cas le plus courant (délégué multidiffusion), le délégué appelle à tour de rôle chaque méthode liée de la liste d'appel, ce qui produit une notification un à plusieurs. Cette stratégie signifie que le contrôle n'a pas besoin de tenir à jour une liste des objets cible pour la notification d'événement car le délégué gère totalement l'inscription et la notification.

Les délégués permettent également de lier plusieurs événements à la même méthode et par conséquent de produire une notification plusieurs-à-un. Par exemple, un événement button-click et un événement menu-command–click peuvent tous deux appeler le même délégué, lequel appelle à son tour une méthode unique pour qu'elle prenne en charge ces deux événements distincts de la même façon.

Le mécanisme de liaison utilisé avec les délégués est dynamique : un délégué peut être lié au moment de l'exécution à n'importe quelle méthode dont la signature correspond à celle du gestionnaire d'événements. Cette fonctionnalité vous permet de configurer ou de modifier la méthode de liaison en fonction d’une condition et d’attacher dynamiquement un gestionnaire d’événements à un contrôle.

Voir aussi