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!