System.Windows.Forms.Keys - нижний или верхний регистр? - PullRequest
4 голосов
/ 11 января 2012

Я искал ответ на этот вопрос, но не могу ничего найти.Кто-нибудь знает, можно ли определить регистр букв в Keys?

Например:

if (System.Windows.Forms.Keys.A.ToString() == "A")
{
    // Upper or Lower?
}

Спасибо.

Ответы [ 3 ]

7 голосов
/ 11 января 2012

Корпус отсутствует, он представляет собой физическую клавишу на клавиатуре.Вы видите «а» и «А» на клавиатуре?

Вы можете проверить и посмотреть, нажата ли клавиша Shift.

3 голосов
/ 11 января 2012

System.Windows.Forms.Keys.A представляет физическую клавишу A на клавиатуре. У него нет дела. Таким образом, ваш вопрос не имеет смысла.

Если вы хотите проверить, держит ли пользователь клавишу Shift на клавиатуре, есть также System.Windows.Forms.Keys.Shift.

2 голосов
/ 11 января 2012

Нет простого сопоставления между ключами и символами. Раскладки клавиатуры могут работать по-разному. Одним из примеров являются мертвые ключи. И как только вы попадаете в IME, все становится еще сложнее. Не пытайтесь дублировать раскладку клавиатуры вручную в вашем приложении.

Если вы хотите узнать, какой символ вводил пользователь, обрабатывайте WM_CHAR, а не WM_KEY_DOWN/UP. Он отображается как Control.KeyPress событие в winforms.

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