Événements liés à la souris dans les Windows Forms
Lorsque vous gérez les entrées de la souris, vous souhaitez habituellement connaître l'emplacement du pointeur de la souris et l'état des boutons de souris. Cette rubrique fournit des détails sur les méthodes d'obtention de ces informations à partir des événements de souris, et explique l'ordre dans lequel les événements de clic de souris sont déclenchés dans les contrôles Windows Forms. Pour obtenir la liste et la description de tous les événements de souris, consultez Fonctionnement des entrées de la souris dans les Windows Forms. Pour plus d'informations, consultez Vue d'ensemble des événements (Windows Forms) et Vue d'ensemble des gestionnaires d'événements (Windows Forms) et Vue d'ensemble des gestionnaires d'événements (Windows Forms) et Vue d'ensemble des événements (Windows Forms) et Vue d'ensemble des gestionnaires d'événements (Windows Forms) et Vue d'ensemble des événements (Windows Forms) et Vue d'ensemble des gestionnaires d'événements (Windows Forms) et Vue d'ensemble des événements (Windows Forms).
Informations de souris
Un MouseEventArgs est envoyé aux gestionnaires d'événements de souris liés aux clics de bouton de la souris et au suivi des déplacements de souris. MouseEventArgs fournit des informations sur l'état actuel de la souris, notamment l'emplacement du pointeur de la souris dans les coordonnées clientes, les boutons de la souris sur lesquels le clic est effectué et le roulement de la molette de la souris. Plusieurs événements de souris, tels que ceux qui envoient une notification lorsque le pointeur de la souris entre dans les limites d'un contrôle ou en sort, envoient EventArgs au gestionnaire d'événements sans informations complémentaires.
Si vous souhaitez connaître l'état actuel des boutons de la souris ou l'emplacement du pointeur de la souris et souhaitez éviter la gestion d'un événement de souris, vous pouvez également utiliser les propriétés MouseButtons et MousePosition de la classe Control. MouseButtons retourne une valeur indiquant sur quels boutons de la souris les clics sont effectués. MousePosition retourne les coordonnées d'écran du pointeur de la souris et est équivalent à la valeur retournée par Position.
Conversion entre coordonnées d'écran et coordonnées clientes
Étant donné que certaines informations sur l'emplacement de la souris se trouvent dans les coordonnées clientes et que d'autres figurent dans les coordonnées d'écran, vous devrez peut-être convertir un point d'un système de coordonnées vers un autre. Vous pouvez le faire facilement en utilisant les méthodes PointToClient et PointToScreen disponibles dans la classe Control.
Comportement d'événement Click standard
Si vous souhaitez gérer des événements de clic de souris dans l'ordre approprié, vous devez connaître l'ordre dans lequel les événements Click sont déclenchés dans les contrôles Windows Forms. Tous les contrôles Windows Forms déclenchent des événements Click dans le même ordre lorsqu'un bouton de souris est enfoncé et relâché (quel que soit le bouton), sauf indication contraire figurant dans la liste suivante pour des contrôles individuels. La liste suivante indique l'ordre des événements déclenchés pour un clic simple :
Événement MouseDown.
Événement Click.
Événement MouseClick.
Événement MouseUp.
La liste suivante indique l'ordre des événements déclenchés pour un double clic :
Événement MouseDown.
Événement Click.
Événement MouseClick.
Événement MouseUp.
Événement MouseDown.
Événement DoubleClick. (Cela peut varier, selon si le bit de style StandardDoubleClick du contrôle concerné a la valeur true. Pour plus d'informations sur la définition d'un bit ControlStyles, consultez la méthode SetStyle.)
Événement MouseDoubleClick.
Événement MouseUp.
Pour obtenir un exemple de code qui illustre l'ordre des événements de clic de souris, consultez Comment : gérer des événements d'entrée d'utilisateur dans les contrôles Windows Forms.
Contrôles individuels
Les contrôles suivants ne sont pas conformes au comportement de l'événement de clic de souris standard :
Contrôles Button, CheckBox, ComboBox et RadioButton
Notes
Pour le contrôle ComboBox, le comportement de l'é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.
Clic avec le bouton gauche : Click, MouseClick
Clic avec le bouton droit : aucun événement Click déclenché
Double-clic avec le bouton gauche : Click, MouseClick; Click, MouseClick
Double-clic avec le bouton droit : aucun événement Click déclenché
Contrôles TextBox, RichTextBox, ListBox, MaskedTextBox et CheckedListBox
Notes
Le comportement de l'événement détaillé plus loin se produit lorsque l'utilisateur clique dans ces contrôles.
Clic avec le bouton gauche : Click, MouseClick
Clic avec le bouton droit : aucun événement Click déclenché
Double-clic avec le bouton gauche : Click, MouseClick; DoubleClick, MouseDoubleClick
Double-clic avec le bouton droit : aucun événement Click déclenché
Contrôle ListView
Notes
Le comportement de l'événement détaillé plus loin ne se produit que lorsque l'utilisateur clique sur les éléments du contrôle ListView. Aucun événement n'est déclenché si l'utilisateur clique à un autre endroit dans le contrôle. Outre les événements décrits plus loin, il existe des événements BeforeLabelEdit et AfterLabelEdit qui peuvent être utiles si vous souhaitez utiliser la validation avec le contrôle ListView.
Clic avec le bouton gauche : Click, MouseClick
Clic avec le bouton droit : Click, MouseClick
Double-clic avec le bouton gauche : Click, MouseClick; DoubleClick, MouseDoubleClick
Double-clic avec le bouton droit : Click, MouseClick; DoubleClick, MouseDoubleClick
Contrôle TreeView
Notes
Le comportement de l'événement détaillé plus loin ne se produit que lorsque l'utilisateur clique sur les éléments ou à droite de ceux-ci dans le contrôle TreeView. Aucun événement n'est déclenché si l'utilisateur clique à un autre endroit dans le contrôle. Outre les événements décrits plus loin, il existe des événements BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck et AfterLabelEdit, qui peuvent être utiles si vous souhaitez utiliser la validation avec le contrôle TreeView.
Clic avec le bouton gauche : Click, MouseClick
Clic avec le bouton droit : Click, MouseClick
Double-clic avec le bouton gauche : Click, MouseClick; DoubleClick, MouseDoubleClick
Double-clic avec le bouton droit : Click, MouseClick; DoubleClick, MouseDoubleClick
Comportement de peinture des contrôles de basculement
Les contrôles de basculement, tels que les contrôles qui dérivent de la classe ButtonBase, ont le comportement de peinture décrit dans le tableau suivant lorsqu'ils sont associés à des événements de clic de souris :
L'utilisateur clique.
Le contrôle est peint enfoncé.
L'événement MouseDown est déclenché.
L'utilisateur relâche le bouton de la souris.
Le contrôle est peint en relief.
L'événement Click est déclenché.
L'événement MouseClick est déclenché.
L'événement MouseUp est déclenché.
Notes
Si l'utilisateur déplace le pointeur à l'extérieur du contrôle de basculement alors que le bouton de la souris est enfoncé (si, par exemple, il déplace le pointeur à l'extérieur du contrôle Button tout en maintenant le bouton de la souris appuyé), le contrôle de basculement est peint en relief et seul l'événement MouseUp est déclenché. Les événements Click ou MouseClick ne se produiront pas dans cette situation.