Maison >développement back-end >C++ >Comment puis-je déterminer efficacement quelles touches du clavier sont actuellement enfoncées dans les formulaires Windows ?

Comment puis-je déterminer efficacement quelles touches du clavier sont actuellement enfoncées dans les formulaires Windows ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-14 12:23:43878parcourir

How Can I Efficiently Determine Which Keyboard Keys Are Currently Pressed in Windows Forms?

Comment détecter efficacement les touches actuellement enfoncées dans Windows Forms

Dans le développement Windows Forms, utilisez la classe Cursors pour obtenir facilement la position en temps réel du curseur. Cependant, déterminer l’état actuel d’une touche du clavier est relativement complexe. Par exemple, pouvons-nous déterminer si la touche Shift est actuellement enfoncée ? Et pouvons-nous éviter la surveillance fastidieuse de chaque événement KeyDown et KeyUp ?

Solution :

Heureusement, il est possible de détecter les touches enfoncées sans suivre attentivement les événements. Pour déterminer si la touche Maj est enfoncée (que d'autres touches de modification soient enfoncées en même temps), vous pouvez utiliser l'extrait de code suivant :

<code class="language-c#">if ((Control.ModifierKeys & Keys.Shift) != 0)</code>

Cette méthode évalue si le résultat de l'opération ET au niveau du bit des valeurs Control.ModifierKeys et Keys.Shift est différent de zéro. Si le résultat est vrai, vous pouvez conclure que la touche Shift a été enfoncée.

Pour garantir que seule la touche Maj est enfoncée et qu'aucune autre touche de modification n'est active, la vérification peut être améliorée comme suit :

<code class="language-c#">if (Control.ModifierKeys == Keys.Shift)</code>

Si vous travaillez dans une classe qui hérite de Control (comme un formulaire), vous pouvez omettre la référence Control pour rendre le code plus propre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn