Fonctionnement de l’entrée de la souris dans Windows Forms
La réception et la gestion des entrées de souris constituent une partie importante de chaque application Windows. Vous pouvez gérer les événements de souris pour effectuer une action dans votre application ou utiliser des informations d’emplacement de la souris pour effectuer des tests de positionnement ou d’autres actions. En outre, vous pouvez modifier la façon dont les contrôles de votre application gèrent l’entrée de la souris. Cette rubrique décrit en détail ces événements de souris et explique comment obtenir et modifier les paramètres système de la souris. Pour plus d’informations sur les données fournies avec les événements de souris et l’ordre dans lequel les événements de clic de souris sont déclenchés, consultez Événements de souris dans Windows Forms.
Emplacement de la souris et Hit-Testing
Lorsque l’utilisateur déplace la souris, le système d’exploitation déplace le pointeur de la souris. Le pointeur de la souris contient un pixel unique, appelé point chaud, que le système d’exploitation suit et reconnaît comme position du pointeur. Lorsque l’utilisateur déplace la souris ou appuie sur un bouton de la souris, l'Control qui contient le HotSpot déclenche l’événement de souris approprié. Vous pouvez obtenir la position actuelle de la souris avec la propriété Location de l'MouseEventArgs lors de la gestion d’un événement de souris ou à l’aide de la propriété Position de la classe Cursor. Vous pouvez ensuite utiliser les informations d’emplacement de la souris pour effectuer des tests de positionnement, puis effectuer une action en fonction de l’emplacement de la souris. La fonctionnalité de test de positionnement est intégrée à plusieurs contrôles dans Windows Forms, tels que les contrôles ListView, TreeView, MonthCalendar et DataGridView. Utilisé avec un événement de souris adéquat, comme MouseHover par exemple, les tests de collision sont très utiles pour déterminer quand votre application doit effectuer une action spécifique.
É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 quand 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 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 alors qu'il est au-dessus d'un élément. 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. |
Modification de l’entrée de la souris et détection des paramètres système
Vous pouvez détecter et modifier la façon dont un contrôle gère l’entrée de la souris en dérivant du contrôle et en utilisant les méthodes GetStyle et SetStyle. La méthode SetStyle prend une combinaison de valeurs ControlStyles au niveau des bits pour déterminer si le contrôle aura un comportement de clic standard ou de double-clic, ou si le contrôle traite lui-même les interactions de la souris. En outre, la classe SystemInformation inclut des propriétés qui décrivent les fonctionnalités de la souris et spécifient la façon dont la souris interagit avec le système d’exploitation. Le tableau suivant récapitule ces propriétés.
Propriété | Description |
---|---|
DoubleClickSize | Obtient les dimensions, en pixels, de la zone dans laquelle l’utilisateur doit cliquer deux fois pour que le système d’exploitation considère les deux clics un double-clic. |
DoubleClickTime | Obtient le nombre maximal de millisecondes qui peuvent s’écouler entre un premier clic et un deuxième clic pour que le système d’exploitation considère l’action de la souris en double-clic. |
MouseButtons | Obtient le nombre de boutons sur la souris. |
MouseButtonsSwapped | Obtient une valeur indiquant si les fonctions des boutons gauche et droit de la souris ont été permutées. |
MouseHoverSize | Obtient les dimensions, en pixels, du rectangle dans lequel le pointeur de la souris doit rester pendant le temps de pointage de la souris avant qu’un message de pointage de la souris soit généré. |
MouseHoverTime | Obtient le temps, en millisecondes, que le pointeur de la souris doit rester dans le rectangle de pointage avant qu’un message de pointage de la souris soit généré. |
MousePresent | Obtient une valeur indiquant si une souris est installée. |
MouseSpeed | Obtient une valeur indiquant la vitesse actuelle de la souris, comprise entre 1 et 20. |
MouseWheelPresent | Obtient une valeur indiquant si une souris avec une roulette de souris est installée. |
MouseWheelScrollDelta | Obtient la quantité de la valeur delta de l’incrément d’une rotation de roulette de souris unique. |
MouseWheelScrollLines | Obtient le nombre de lignes à faire défiler lorsque la roulette de la souris est pivotée. |
Voir aussi
.NET Desktop feedback