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 de 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 de 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 pour 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 pour 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 pour 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 pour 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 pour 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 pour 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 pour 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 pour 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 contrôle. Le gestionnaire pour 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 pour 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 pour cet événement reçoit un argument de type MouseEventArgs. Vous pouvez utiliser la Delta propriété de MouseEventArgs 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 aux clics de souris et au suivi des mouvements de souris. MouseEventArgs fournit des informations sur l'état actuel de la souris, y compris l'emplacement du pointeur de la souris sous forme de coordonnées clientes, les boutons de souris qui sont enfoncés et si la roulette a défilé. 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 gestionnaire d’événements sans informations supplémentaires.
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 aussi utiliser les propriétés MouseButtons et MousePosition de la classe Control. MouseButtons retourne des informations sur les boutons de souris qui sont actuellement enfoncés. MousePosition retourne les coordonnées d'écran du pointeur de la souris et est équivalente à la valeur retournée par Position.
Conversion entre les coordonnées clientes et d'écran
Étant donné que certaines informations sur l'emplacement de la souris sont spécifiées en coordonnées clientes et d'autres en coordonnées d'écran, vous devrez peut-être convertir un point d'un système de coordonnées en un autre. Cette opération peut être effectuée facilement à l'aide des 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 ci-dessous indique l'ordre des événements déclenchés pour un clic sur un bouton de souris :
- ÉvénementMouseDown .
- ÉvénementClick .
- ÉvénementMouseClick .
- ÉvénementMouseUp .
Voici l’ordre des événements déclenchés pour un double clic sur le bouton de la souris :
ÉvénementMouseDown .
ÉvénementClick .
ÉvénementMouseClick .
ÉvénementMouseUp .
ÉvénementMouseDown .
ÉvénementDoubleClick .
Cela peut varier, selon que le contrôle en question a le bit de StandardDoubleClick style défini
true
sur . Pour plus d’informations sur la définition d’un ControlStyles bit, consultez la SetStyle méthode.ÉvénementMouseDoubleClick .
ÉvénementMouseUp .
Contrôles individuels
Les contrôles suivants ne sont pas conformes au comportement d’événement de clic de souris standard :
-
Remarque
Pour le contrôle ComboBox, le comportement d'événement détaillé plus loin se produit si l'utilisateur clique sur le champ d'édition, le bouton ou un élément dans la liste.
- Cliquez avec le bouton gauche : Click, MouseClick
- Clic droit : Aucun événement de clic déclenché
- Double-clic gauche : Click, MouseClick; Click, MouseClick
- Double-cliquez avec le bouton droit : Aucun événement de clic déclenché
Contrôles TextBox, RichTextBox, ListBox, MaskedTextBox et CheckedListBox
Remarque
Le comportement d'événement détaillé plus loin se produit quand l'utilisateur clique dans ces contrôles.
- Cliquez avec le bouton gauche : Click, MouseClick
- Clic droit : Aucun événement de clic déclenché
- Double-clic gauche : Click, MouseClick, DoubleClick, MouseDoubleClick
- Double-cliquez avec le bouton droit : Aucun événement de clic déclenché
Contrôle ListView
Remarque
Le comportement d'événement détaillé plus loin se produit quand l'utilisateur clique sur les éléments dans le contrôle ListView. Aucun événement n'est déclenché si l'utilisateur clique ailleurs sur le contrôle. Outre les événements décrits plus loin, il existe les événements BeforeLabelEdit et AfterLabelEdit, qui peuvent être utiles si vous souhaitez utiliser la validation avec le contrôle ListView.
- Cliquez avec le bouton gauche : Click, MouseClick
- Cliquez avec le bouton droit : Click, MouseClick
- Double-clic gauche : Click, MouseClick; DoubleClick, MouseDoubleClick
- Double-cliquez avec le bouton droit : Click, MouseClick; DoubleClick, MouseDoubleClick
Contrôle TreeView
Remarque
Le comportement d'événement détaillé plus loin se produit uniquement quand l'utilisateur clique sur les éléments proprement dits ou à droite des éléments dans le contrôle TreeView. Aucun événement n'est déclenché si l'utilisateur clique ailleurs sur le contrôle. Outre ceux décrits plus loin, il existe les événements BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck et AfterLabelEdit, qui peuvent être utiles si vous souhaitez utiliser la validation avec le contrôle TreeView.
- Cliquez avec le bouton gauche : Click, MouseClick
- Cliquez avec le bouton droit : Click, MouseClick
- Double-clic gauche : Click, MouseClick; DoubleClick, MouseDoubleClick
- Double-cliquez avec le bouton droit : Click, MouseClick; DoubleClick, MouseDoubleClick
Comportement de peinture des contrôles bascule
Les contrôles de basculement, tels que ceux dérivant de la classe ButtonBase, présentent le comportement de peinture distinctif suivant en cas de combinaison avec des événements de clic de souris :
L'utilisateur appuie sur le bouton de la souris.
Le contrôle est peint à l'état enfoncé.
L'événement MouseDown est déclenché.
L’utilisateur relâche le bouton de la souris.
Le contrôle est peint à l'état déclenché.
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 basculement alors que le bouton de la souris est enfoncé (par exemple en cas de déplacement de la souris hors du contrôle Button pendant qu'il est enfoncé), le contrôle de basculement est peint à l'état déclenché et seul l'événement MouseUp se produit. L'événement Click ou MouseClick ne se produira pas dans cette situation.
Voir aussi
.NET Desktop feedback