Utilisation d’événements de souris (Windows Forms .NET)
La plupart des programmes Windows Forms traitent les entrées de souris en gérant les événements de la souris. Cet article fournit une vue d’ensemble des événements de souris, y compris des détails sur le moment où utiliser chaque événement et les données fournies pour chaque événement. Pour plus d’informations sur les événements en général, consultez Vue d’ensemble des événements (Windows Forms .NET).
Événements souris
La principale façon de répondre à l’entrée de la souris consiste à gérer les événements de souris. Le tableau suivant présente les événements de souris et décrit le moment où ils sont déclenchés.
événement souris | Description |
---|---|
Click | Cet événement se produit lorsque le bouton de la souris est libéré, généralement avant l’événement MouseUp. Le gestionnaire de cet événement reçoit un argument de type EventArgs. Gérez cet événement lorsque vous devez uniquement déterminer quand un clic se produit. |
MouseClick | Cet événement se produit lorsque l’utilisateur clique sur le contrôle avec la souris. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. Gérez cet événement lorsque vous devez obtenir des informations sur la souris lorsqu’un clic se produit. |
DoubleClick | Cet événement se produit lorsque le contrôle est double-cliqué. Le gestionnaire de cet événement reçoit un argument de type EventArgs. Gérez cet événement lorsque vous devez uniquement déterminer quand un double-clic se produit. |
MouseDoubleClick | Cet événement se produit lorsque l’utilisateur double-clique sur le contrôle avec la souris. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. Gérez cet événement lorsque vous devez obtenir des informations sur la souris lorsqu’un double-clic se produit. |
MouseDown | Cet événement se produit lorsque le pointeur de la souris se trouve sur le contrôle et que l’utilisateur appuie sur un bouton de la souris. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. |
MouseEnter | Cet événement se produit lorsque le pointeur de la souris entre dans la bordure ou la zone cliente du contrôle, en fonction du type de contrôle. Le gestionnaire de cet événement reçoit un argument de type EventArgs. |
MouseHover | Cet événement se produit lorsque le pointeur de la souris s’arrête et repose sur le contrôle. Le gestionnaire de cet événement reçoit un argument de type EventArgs. |
MouseLeave | Cet événement se produit lorsque le pointeur de la souris quitte la bordure ou la zone cliente du contrôle, en fonction du type du contrôle. Le gestionnaire de cet événement reçoit un argument de type EventArgs. |
MouseMove | Cet événement se produit lorsque le pointeur de la souris se déplace pendant qu’il est sur un élément de contrôle. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. |
MouseUp | Cet événement se produit lorsque le pointeur de la souris se trouve sur le contrôle et que l’utilisateur libère un bouton de la souris. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. |
MouseWheel | Cet événement se produit lorsque l’utilisateur fait pivoter la roulette de la souris pendant que le contrôle a le focus. Le gestionnaire de cet événement reçoit un argument de type MouseEventArgs. Vous pouvez utiliser la propriété Delta de MouseEventArgs pour déterminer la distance de défilement de la souris. |
Informations sur la souris
Un MouseEventArgs est envoyé aux gestionnaires d’événements de souris liés au clic sur un bouton de la souris et au suivi des mouvements de la souris. MouseEventArgs fournit des informations sur l’état actuel de la souris, y compris l’emplacement du pointeur de la souris dans les coordonnées du client, les boutons de la souris qui sont enfoncés et si la roulette de la souris a fait défiler. Plusieurs événements de souris, tels que ceux déclenchés lorsque le pointeur de la souris a entré ou laissé les limites d’un contrôle, envoient un EventArgs au gestionnaire d’événements sans plus d’informations.
Si vous souhaitez connaître l’état actuel des boutons de la souris ou l’emplacement du pointeur de la souris et que vous souhaitez éviter de gérer un événement de souris, vous pouvez également utiliser les propriétés MouseButtons et MousePosition de la classe Control. MouseButtons retourne des informations sur les boutons de la souris qui sont actuellement enfoncés. Le MousePosition retourne les coordonnées de l’écran du pointeur de la souris et équivaut à la valeur retournée par Position.
Conversion entre les coordonnées de l’écran et du client
Étant donné que certaines informations d’emplacement de la souris se trouvent dans les coordonnées du client et qu’elles se trouvent dans les coordonnées de l’écran, vous devrez peut-être convertir un point d’un système de coordonnées vers l’autre. Pour ce faire, vous pouvez facilement utiliser les méthodes PointToClient et PointToScreen disponibles sur la classe Control.
Comportement de l’événement Click standard
Si vous souhaitez gérer les événements de clic de souris dans l’ordre approprié, vous devez connaître l’ordre dans lequel les événements de clic sont déclenchés dans les contrôles Windows Forms. Tous les contrôles Windows Forms déclenchent des événements de clic dans le même ordre quand un bouton de souris pris en charge est enfoncé et libéré, sauf si indiqué dans la liste suivante pour les contrôles individuels. La liste suivante montre l’ordre des événements déclenchés pour un clic simple sur le bouton de la souris :
- événement MouseDown.
- événement Click.
- événement MouseClick.
- événement MouseUp.
Voici l’ordre des événements déclenchés pour un double clic sur le bouton de la souris :
événement MouseDown.
événement Click.
événement MouseClick.
événement MouseUp.
événement MouseDown.
événement DoubleClick.
Cela peut varier, selon que le contrôle en question a le bit de style StandardDoubleClick défini sur
true
. Pour plus d’informations sur la définition d’un bit ControlStyles, consultez la méthode SetStyle.événement MouseDoubleClick.
événement MouseUp.
Contrôles individuels
Les contrôles suivants ne sont pas conformes au comportement d’événement de clic de souris standard :
-
Note
Pour le contrôle ComboBox, le comportement de l’événement détaillé plus tard se produit si l’utilisateur clique sur le champ d’édition, le bouton ou sur un élément de la liste.
- Clic gauche sur: Click, MouseClick
- Cliquez avec le bouton droit sur: aucun événement de clic n'a été déclenché
- Double-clic gauche: Click, MouseClick; Click, MouseClick
- Double-cliquez avec le bouton droit: aucun événement clic déclenché
contrôles TextBox, RichTextBox, ListBox, MaskedTextBoxet CheckedListBox
Note
Le comportement de l'événement, tel que détaillé par la suite, se produit lorsque l'utilisateur clique n'importe où dans ces éléments de contrôle.
- Clic gauche sur: Click, MouseClick
- Cliquez avec le bouton droit sur: aucun événement de clic n'a été déclenché
- Cliquez deux fois sur le bouton gauche: Click, MouseClick, DoubleClick, MouseDoubleClick
- Clic droit double: aucun événement de clic déclenché
contrôle ListView
Note
Le comportement de l’événement détaillé plus tard se produit uniquement lorsque l’utilisateur clique sur les éléments du contrôle ListView. Aucun événement n’est déclenché pour les clics ailleurs sur le contrôle. En plus des événements décrits plus tard, il existe les événements BeforeLabelEdit et AfterLabelEdit, qui peuvent vous intéresser si vous souhaitez utiliser la validation avec le contrôle ListView.
- Clic gauche sur: Click, MouseClick
- Cliquez avec le bouton droit sur: Click, MouseClick
- Double-cliquez surgauche : Click, MouseClick; DoubleClick, MouseDoubleClick
- Double-cliquez avec le bouton droit sur: Click, MouseClick; DoubleClick, MouseDoubleClick
contrôle TreeView
Note
Le comportement de l’événement décrit plus loin se produit uniquement lorsque l’utilisateur clique sur les éléments eux-mêmes ou à droite des éléments dans le contrôle TreeView. Aucun événement n'est déclenché pour les clics ailleurs sur le contrôle. En plus de ceux décrits plus tard, il existe les BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterChecket les événements AfterLabelEdit, qui peuvent vous intéresser si vous souhaitez utiliser la validation avec le contrôle TreeView.
- Clic gauche sur: Click, MouseClick
- Cliquez avec le bouton droit sur: Click, MouseClick
- Double-cliquez surgauche : Click, MouseClick; DoubleClick, MouseDoubleClick
- Double-cliquez avec le bouton droit sur: Click, MouseClick; DoubleClick, MouseDoubleClick
Comportement d'affichage des contrôles à bascule
Les commutateurs, tels que ceux dérivant de la classe ButtonBase, ont le comportement distinctif suivant lors du rendu graphique lors des événements de clic de souris :
L’utilisateur appuie sur le bouton de la souris.
Le contrôle s’affiche dans l’état enfoncé.
L’événement MouseDown est déclenché.
L’utilisateur libère le bouton de la souris.
Le contrôle s'affiche dans l'état surélevé.
L’événement Click est déclenché.
L’événement MouseClick est déclenché.
L’événement MouseUp est déclenché.
Remarque
Si l’utilisateur déplace le pointeur hors du contrôle de bascule pendant que le bouton de la souris est enfoncé (par exemple, en déplaçant la souris hors du contrôle Button lorsqu’il est enfoncé), le contrôle de bascule s’affiche dans l’état surélevé et seul l’événement MouseUp se produit. Les événements Click ou MouseClick ne se produisent pas dans cette situation.
Voir aussi
.NET Desktop feedback