Windows Forms vous permet de créer visuellement des applications de bureau en faisant glisser des éléments d'interface utilisateur sur un canevas. Ces éléments d'interface utilisateur incluent des widgets tels que des boutons, des panneaux ou des cases à cocher.

Chaque élément de l'interface utilisateur reçoit certains événements. Par exemple, vous pouvez avoir un événement de clic pour les boutons, un événement modifié pour les cases à cocher ou un événement de glisser-déposer pour les panneaux.

Les événements utilisent des gestionnaires d'événements ou des fonctions, qui ne s'exécutent que lorsque cet événement particulier se produit.

Types d'événements utilisés pour différents éléments d'interface utilisateur

Chaque élément de l'interface utilisateur a une liste d'événements. Il existe de nombreux cours où vous pouvez en savoir plus sur les théories et pratiques importantes en matière d'expérience utilisateur ou d'interface utilisateur pour vous aider à décider quels éléments de l'interface utilisateur utiliser. Voici quelques exemples d'événements utilisés par les éléments de l'interface utilisateur.

Événements de touche enfoncée, de touche enfoncée ou d'appui sur la touche

Les éléments d'interface utilisateur qui permettent à l'utilisateur de saisir du texte, comme une zone de texte, peuvent utiliser ces événements. Ces événements se déclenchent chaque fois que l'utilisateur appuie sur une touche de son clavier.

Celles-ci peuvent être utiles dans les scénarios où vous disposez d'une fonctionnalité de recherche et vous devrez peut-être vérifier en permanence la valeur de la zone de texte.

privéannulertextBox1_KeyUp(expéditeur d'objet, KeyEventArgs e)
{
TextBox textbox = (TextBox) expéditeur ;
chaîne currentTextBoxValue = zone de texte. Texte;
}

Charger l'événement

L'événement load se produit lorsque le formulaire ou un élément de l'interface utilisateur est affiché à l'écran. Vous pouvez utiliser cet événement lorsque vous souhaitez que des fonctionnalités spécifiques se produisent à l'étape d'initialisation du formulaire ou du contrôle.

Un scénario où cela peut être utile est si vous souhaitez ajouter par programme des contrôles au formulaire pendant qu'il est encore en cours de chargement.

privéannulerForm1_Load(expéditeur d'objet, EventArgs e)
{
Info-bulle toolTip1 = Nouveau Info-bulle();
toolTip1.AutoPopDelay = 5000 ;
toolTip1.InitialDelay = 1000 ;
toolTip1.ReshowDelay = 500 ;
toolTip1.ShowAlways = vrai;
toolTip1.SetToolTip (this.button1, "Mon bouton1");
toolTip1.Popup += cette.ToolTip1_Popup ;
}

L'événement contextuel d'info-bulle se produit lorsque vous survolez un élément de l'interface utilisateur de l'application et qu'une info-bulle apparaît. Les arguments transmis au gestionnaire d'événements vous permettent d'accéder aux données relatives à l'info-bulle, telles que son texte ou sa taille.

privéannulerToolTip1_Popup(expéditeur d'objet, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) expéditeur ;
string tooltipText = info-bulle. GetToolTip (bouton1);
var taille de l'infobulle = e. Taille de l'info-bulle ;
}

Glisser-déposer l'événement

De nombreux éléments de l'interface utilisateur peuvent utiliser l'événement glisser-déposer, notamment le panneau, le bouton, la zone d'image, la zone de groupe, etc. Cet événement est déclenché lorsque l'utilisateur fait glisser un fichier dans l'élément de l'interface utilisateur.

privéannulerpanel1_DragDrop(expéditeur d'objet, DragEventArgs e)
{
string[] files = (string[])e. Données. GetData (FormatsDonnées. FileDrop, faux);
}

Événements de passage de la souris et de sortie de la souris

L'événement mouse over se déclenche lorsque la souris survole un élément de l'interface utilisateur. Une fois que la souris quitte et cesse de survoler l'élément, l'événement de congé de la souris est déclenché.

privéannulerbutton1_MouseLeave(expéditeur d'objet, EventArgs e)
{
Bouton bouton = (bouton) expéditeur ;
var buttonText = bouton. Texte;
}

Événement modifié coché

Les éléments de l'interface utilisateur qui permettent à l'utilisateur de sélectionner une option peuvent utiliser l'événement modifié coché. Cela inclut les boutons radio et les cases à cocher. La fonction se déclenche lorsque vous cochez ou décochez la case.

privéannulercheckBox1_CheckedChanged(expéditeur d'objet, EventArgs e)
{
CheckBox case à cocher = (CheckBox) expéditeur ;
État CheckState = case à cocher. CheckState;
bool isChecked = case à cocher. Vérifié;
}

Événements de valeur modifiée, de valeur sélectionnée modifiée ou de date de modification

L'événement de modification de valeur est disponible sur les éléments de l'interface utilisateur qui vous permettent de sélectionner une option pour modifier une valeur. Cela inclut les zones de liste déroulante, les sélecteurs de date et d'heure ou le calendrier. La fonction est déclenchée lorsque l'utilisateur sélectionne une nouvelle valeur.

privéannulermonthCalendar1_DateChanged(expéditeur de l'objet, DateRangeEventArgs e)
{
Calendrier MonthCalendar = (MonthCalendar) expéditeur ;
var aujourd'hui = calendrier. La date d'aujourd'hui;
var selectedDatesStart = e. Commencer;
var selectDatesEnd = e. Fin;
}

Cliquez sur l'événement du bouton

La fonction de gestionnaire d'événements de clic est déclenchée lorsque vous cliquez sur un bouton.

privéannulerbouton1_Clic(expéditeur d'objet, EventArgs e)
{
Bouton bouton = (bouton) expéditeur ;
chaîne textValue = bouton. Texte;
}

La structure d'un gestionnaire d'événements

Les gestionnaires d'événements ont deux paramètres principaux: l'expéditeur et un objet d'événement.

L'expéditeur est une référence à l'élément ou à l'objet de l'interface utilisateur qui a déclenché l'événement, tel qu'un bouton, une case à cocher ou un panneau. Par exemple, dans un événement de changement de case à cocher, l'expéditeur serait la case à cocher sur laquelle l'utilisateur a cliqué.

Le paramètre event contient un objet qui stocke des données sur l'événement qui s'est produit. Cela peut inclure les coordonnées X et Y d'un clic sur un bouton ou l'emplacement de la souris au moment où l'événement se déclenche.

privéannulerpanel1_DragDrop(expéditeur d'objet, DragEventArgs e)
{
// Accéder aux propriétés de l'élément de l'UI qui a déclenché l'événement
Panel panel = (Panneau) expéditeur ;
panneau. Activé = faux;
// Accéder aux données de l'événement
var eventData = e. Données;
}

Comment créer et utiliser des gestionnaires d'événements

Tout d'abord, créez un nouveau Application Winforms Forms dans Visual Studio. Si vous débutez avec Windows Forms, il existe de nombreux cloner des applications que vous pouvez créer tout en apprenant Windows Forms.

Gestionnaires d'événements sur le canevas

Vous pouvez générer des gestionnaires d'événements à partir de la fenêtre des propriétés sur le côté droit du canevas. Une fois que vous avez créé une nouvelle application Windows Forms, créez un gestionnaire d'événements pour l'élément d'interface utilisateur de case à cocher. Cela se déclenchera lorsque l'utilisateur cochera ou décochera la case.

  1. Ouvrez le menu de la boîte à outils à gauche de Visual Studio. Faites glisser et déposez un élément d'interface utilisateur de case à cocher sur le canevas.
  2. Mettez en surbrillance la case à cocher sur le canevas.
  3. Dans la fenêtre des propriétés du panneau de droite, cliquez sur l'icône représentant un éclair jaune pour afficher la liste des événements. Faites défiler jusqu'à VérifiéModifié un événement.
  4. Cliquez sur l'espace vide à côté de VérifiéModifié un événement. Cela générera automatiquement une nouvelle fonction pour gérer l'événement. La fonction sera créée dans la partie code-behind de l'application, dans votre fichier .cs.
    privéannulercheckBox1_CheckedChanged(expéditeur d'objet, EventArgs e)
    {
    // Votre code ici
    }

Gestionnaires d'événements utilisant le code derrière

Créez une nouvelle fonction dans le code derrière et liez-la à l'élément d'interface utilisateur sur le canevas.

  1. Sur le canevas, cliquez et faites glisser un élément d'interface utilisateur de bouton. Par défaut, le nom du nouveau bouton sera "bouton1".
  2. Ouvert .cs. Si vous avez laissé le nom d'application Windows Form par défaut "Form1", ce serait Formulaire1.cs.
  3. Dans la classe Form1, créez une nouvelle fonction. Assurez-vous qu'il respecte la structure d'un gestionnaire d'événements et qu'il comporte deux paramètres pour l'expéditeur et l'objet événement.
    privéannulerbutton1_MouseHoverEvent(expéditeur d'objet, EventArgs e)
    {
    // Votre code ici
    }
  4. Liez le gestionnaire d'événements à l'événement de survol de la souris de button1. Vous pouvez le faire dans le constructeur.
    Publique Formulaire 1()
    {
    InitializeComponent();
    cette.button1.MouseHover += button1_MouseHoverEvent ;
    }
  5. Alternativement, vous pouvez également lier la fonction à l'événement à l'aide de la fenêtre des propriétés sur le canevas. Ouvrez la fenêtre des propriétés et entrez le nom de votre gestionnaire d'événements dans le champ MouseHover. Ce serait button1_MouseHoverEvent.

Comment utiliser le même gestionnaire d'événements sur plusieurs événements

Vous pouvez lier la même fonction à plusieurs événements. Dans ce cas, s'il y avait une seule fonction appelée SourisEvénement, vous pouvez ajouter ce gestionnaire d'événements à la fois aux événements de survol et de clic de la souris. Cela gérera alors les deux événements en utilisant la même fonction.

cette.button1.MouseHover += button1_MouseEvent ;
cette.button1.MouseClick += button1_MouseEvent ;

Utilisation d'événements dans une application Windows Form

Une application Windows Forms vous permet de faire glisser et de déposer divers éléments d'interface utilisateur tels que des boutons, des panneaux ou des zones de texte sur un canevas. Vous pouvez ajouter des gestionnaires d'événements à ces éléments d'interface utilisateur, en fonction des différents événements qui peuvent se produire dans l'application.

Si vous créez une application Windows, vous pouvez également ajouter des images ou des graphiques dans le cadre de votre interface utilisateur. Vous pouvez utiliser différentes classes C # telles que la classe Graphic, Pen ou Color, qui vous permettront de dessiner différents types de formes sur le canevas.