Fonctionnement des entrées de la souris dans les 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 test d’accès

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, celui-ci Control contient l’événement HotSpot de souris approprié. Vous pouvez obtenir la position actuelle de la souris avec la propriété de l’événement lors de la LocationMouseEventArgs gestion d’un événement de souris ou à l’aide de la Position propriété de la Cursor classe. 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 le ListView, TreeViewMonthCalendar et DataGridView les contrôles. Utilisé avec l’événement de souris approprié, MouseHover par exemple, le test de positionnement est très utile 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 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.

Modification de l’entrée de la souris et détection du système Paramètres

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 et SetStyle les GetStyle méthodes. La SetStyle méthode prend une combinaison de valeurs au niveau du ControlStyles bit pour déterminer si le contrôle aura un comportement de clic standard ou double-clic ou si le contrôle gère son propre traitement de la souris. En outre, la SystemInformation classe 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 de la souris.
MouseButtonsSwapped Obtient une valeur qui indique 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 délai de pointage de la souris avant qu'un message de pointage soit généré.
MouseHoverTime Obtient le temps en millisecondes pendant lequel le pointeur doit rester dans le rectangle sélectionné automatiquement par pointage avec la souris avant qu'un message de pointage 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 roulette 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 lors de la rotation de la roulette de la souris.

Voir aussi