Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 9
  3. Implémentation de gestionnaires d’événements
Extrait - C# 9 Développez des applications Windows avec Visual Studio 2019
Extraits du livre
C# 9 Développez des applications Windows avec Visual Studio 2019 Revenir à la page d'achat du livre

Implémentation de gestionnaires d’événements

Introduction

Les événements surviennent au cours de l’exécution de l’application. Chaque contrôle, y compris les formulaires, peut déclencher divers événements suite à une action de l’utilisateur. Par exemple, lors du clic sur un contrôle de type Button, un événement Click est déclenché. Si des méthodes, appelées gestionnaires d’événements, sont abonnées à cet événement, elles seront exécutées. 

Chaque contrôle possède un événement par défaut. Double cliquez sur un contrôle pour que Visual Studio crée le gestionnaire d’événements associés. Pour la plupart des contrôles, il s’agit de l’événement Click.

La création de gestionnaires d’événements

Double cliquez sur l’élément de menu Serveur Mail du formulaire Main. Visual Studio ouvre le fichier de code associé avec l’implémentation de base du gestionnaire d’événements :

private void MailServerMenu_Click(object sender, EventArgs e) 
{ 
} 

La méthode est marquée avec le mot-clé private. Elle prend en premier paramètre un objet de type object qui représente l’objet qui a levé l’événement et, en second paramètre, un objet de type EventArgs contenant des informations supplémentaires sur l’événement.

Ajoutez le code suivant au gestionnaire d’événements :

new MailServerSettings().ShowDialog(); 

Cette instruction crée une nouvelle instance d’objet de type MailServerSettings et l’affiche de manière modale. Pour tester le gestionnaire d’événements, il suffit de lancer l’application ([F5]) et de cliquer sur le menu Serveur Mail. Si vous utilisez le raccourci-clavier ou la touche d’accès rapide qui ont été définis, l’événement est aussi déclenché.

Les contrôles ont de nombreux événements, ils sont accessibles via la fenêtre de propriétés en cliquant...

Les gestionnaires d’événements avancés

1. Un gestionnaire pour plusieurs événements

Un gestionnaire peut être abonné à plusieurs événements différents. C’est utile lorsque plusieurs objets ou contrôles doivent déclencher la même action et cela évite de créer plusieurs gestionnaires identiques.

L’association se fait comme à l’habitude, en associant à l’événement un délégué pointant vers la méthode, sauf que le délégué est identique pour les deux événements :

this.Valid.Click += new EventHandler(this.Valid_Click); 
this.Cancel.Click += new EventHandler(this.Valid_Click); 

Vous pouvez aussi commencer par déclarer et instancier le délégué puis l’associer à plusieurs événements :

EventHandler newHandler = new EventHandler(this.Valid_Click); 
this.Valid.Click += newHandler; 
this.Cancel.Click += newHandler; 

Comme plusieurs contrôles déclenchent le même événement, la distinction des actions à effectuer peut se faire grâce au paramètre sender qui est passé au gestionnaire d’événements :

private void Valid_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show((sender...