Partager via


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 :

  1. événement MouseDown.
  2. événement Click.
  3. événement MouseClick.
  4. événement MouseUp.

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

  1. événement MouseDown.

  2. événement Click.

  3. événement MouseClick.

  4. événement MouseUp.

  5. événement MouseDown.

  6. é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.

  7. événement MouseDoubleClick.

  8. événement MouseUp.

Contrôles individuels

Les contrôles suivants ne sont pas conformes au comportement d’événement de clic de souris standard :

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 :

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

  2. Le contrôle s’affiche dans l’état enfoncé.

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

  4. L’utilisateur libère le bouton de la souris.

  5. Le contrôle s'affiche dans l'état surélevé.

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