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.
Les applications pilotées par les événements exécutent du code en réponse à un événement. Chaque formulaire et contrôle expose 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 varient, mais de nombreux types sont communs à la plupart des contrôles. Par exemple, la plupart des objets gèrent un événement Click. Si un utilisateur clique sur un formulaire, le code du gestionnaire d’événements Click du formulaire est exécuté.
Remarque
De nombreux événements se produisent conjointement avec d’autres événements. Par exemple, au cours de l’événement DoubleClick se produisant, les événements MouseDown, MouseUpet Click se produisent.
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énement utilise les délégués pour lier les événements aux méthodes servant à les gérer. Le délégué permet à d’autres classes de s’inscrire à 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 seule méthode ou à plusieurs méthodes, appelées 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 tient à jour une liste d'appel des méthodes auxquelles il est lié. Le délégué de multidiffusion prend en charge une méthode Combine pour ajouter une méthode à la liste d’appel et une méthode Remove pour la supprimer.
Lorsqu’un événement est enregistré par l’application, le contrôle déclenche l’événement en appelant le délégué pour cet événement. 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 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 de clic sur un bouton et un événement de clic sur une commande de menu peuvent tous deux invoquer le même délégué, qui appelle ensuite une méthode unique pour gérer ces événements distincts de la même manière.
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. Avec cette fonctionnalité, vous pouvez configurer ou modifier la méthode liée en fonction d’une condition et attacher dynamiquement un gestionnaire d’événements à un contrôle.
Voir aussi
.NET Desktop feedback