Преобразование System.Windows.Forms.Shortcut в KeyData / KeyCode - PullRequest
2 голосов
/ 15 ноября 2011

Есть ли простой способ получить соответствующие ключевые данные (комбинацию кодов клавиш) для некоторого значения в этом перечислении?

Я не могу найти их, и создание оператора switch для всех них немного излишне ...

Целочисленные значения элементов enum - это не коды клавиш, а некоторые «неизвестные» большие числа, поэтому простое приведение к int не будет работать.

Ответы [ 2 ]

2 голосов
/ 23 мая 2013

System.Windows.Forms.Shortcut и System.Windows.Forms.Keys можно приводить напрямую (их целочисленные значения совпадают).

Keys keys = (Keys) Shortcut.CtrlL;
1 голос
/ 15 ноября 2011

Нижние 4 байта являются ключом, а верхние 4 байта являются маской для Shift, Ctrl и Alt-Key, так что вы можете получить KeyCode примерно так:

Shortcut shortcut = Shortcut.ShiftDel;
Debug.Print((((int)shortcut) & 0xFFFF).ToString());

Будет выводить 46, который является кодом для ключа del.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...