Vue d’ensemble des événements (Windows Forms .NET)

Un événement est une action à laquelle vous pouvez répondre ou « gérer » dans le code. Les événements peuvent être générés par une action utilisateur, comme cliquer sur la souris ou appuyer sur une touche, par code de programme ou par le système.

Important

La documentation du Guide du bureau pour .NET 7 et .NET 6 est en cours de construction.

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 qu’il existe un gestionnaire d’événements associé, ce code 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 Gestion et déclenchement d’événements.

Délégués et leur rôle

Les délégués sont des classes couramment utilisées dans .NET pour générer 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. En outre, lorsqu’un pointeur de fonction contient uniquement une référence à une fonction particulière, un délégué se compose d’une référence à un objet et de références à une ou plusieurs méthodes au sein de l’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 Gestion et déclenchement d’é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 créez généralement un événement de multidiffusion. Une exception rare peut être un événement qui entraîne une procédure spécifique (par exemple, l’affichage d’une boîte de dialogue) qui ne se répète pas logiquement 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 gère une liste d’appel des méthodes à laquelle 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 (un délégué multidiffusion), le délégué appelle chaque méthode liée dans la liste d’appel à son tour, qui fournit une notification un-à-plusieurs. Cette stratégie signifie que le contrôle n’a pas besoin de conserver une liste d’objets cibles pour la notification d’événement : le délégué gère toutes les inscriptions et toutes les notifications.

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