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 :

  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 .

Contrôles individuels

Les contrôles suivants ne sont pas conformes au 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