Partager via


Événements liés à la souris dans les Windows Forms

Quand vous gérez l'entrée de souris, vous souhaitez habituellement connaître l'emplacement du pointeur de la souris et l'état de ses boutons. Cette rubrique fournit des détails sur la façon d'obtenir des 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 une liste et une description de tous les événements de souris, voir Fonctionnement de l’entrée de la souris dans Windows Forms. Consultez également Vue d’ensemble des gestionnaires d’événements (Windows Forms) et Vue d’ensemble des événements (Windows Forms).

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 qui indiquent simplement si le pointeur de souris pénétré ou quitté les limites d'un contrôle, envoient un EventArgs au gestionnaire d'événements sans aucune information complémentaire.

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 d'événement de clic 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 les événements de clic dans le même ordre quand un bouton de souris est enfoncé et relâché (quel que soit le bouton), sauf indication contraire mentionnée dans la liste suivante pour un contrôle spécifique. La liste ci-dessous indique l'ordre des événements déclenchés pour un clic sur un bouton de souris :

  1. ÉvénementMouseDown .

  2. ÉvénementClick .

  3. ÉvénementMouseClick .

  4. ÉvénementMouseUp .

Voici l’ordre des événements déclenchés pour un double clic sur le bouton de la souris :

  1. ÉvénementMouseDown .

  2. ÉvénementClick .

  3. ÉvénementMouseClick .

  4. ÉvénementMouseUp .

  5. ÉvénementMouseDown .

  6. ÉvénementDoubleClick . (Cela peut varier, selon que le contrôle en question a le bit de StandardDoubleClick style défini truesur . Pour plus d’informations sur la définition d’un ControlStyles bit, consultez la SetStyle méthode.)

  7. ÉvénementMouseDoubleClick .

  8. ÉvénementMouseUp .

Pour obtenir un exemple de code qui illustre l’ordre des événements de clic de souris, consultez Guide pratique pour gérer les événements d’entrée utilisateur dans les contrôles Windows Forms.

Contrôles spécifiques

Les contrôles suivants n'ont pas le comportement d'événement de clic de souris standard :

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 :

  1. L'utilisateur appuie sur le bouton de la souris.

  2. Le contrôle est peint à l'état enfoncé.

  3. L'événement MouseDown est déclenché.

  4. L’utilisateur relâche le bouton de la souris.

  5. Le contrôle est peint à l'état déclenché.

  6. L'événement Click est déclenché.

  7. L'événement MouseClick est déclenché.

  8. 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