C

Je débute en C

请先 登录 后评论

1 réponses

Tokabi

Dans votre ProcessCmdKey remplacée, comment déterminez-vous quelle touche a été enfoncée ?

La valeur de keyData (le deuxième paramètre) changera en fonction de la touche enfoncée et des touches de modification, donc, par exemple, appuyer sur la flèche gauche renverra le code 37, shift-gauche renverra 65573, ctrl-gauche 131109 et alt-gauche 262181.

Vous pouvez extraire les modificateurs et la touche enfoncée par AND avec les valeurs d'énumération appropriées :

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    bool shiftPressed = (keyData & Keys.Shift) != 0;
    Keys unmodifiedKey = (keyData & Keys.KeyCode);

    // rest of code goes here
}
请先 登录 后评论