Как я могу предотвратить Alt коды в приложении .NET? - PullRequest
5 голосов
/ 29 октября 2010

У меня есть приложение .NET с кнопками, которые используют цифры для мнемоники.(например, «& 1 - Чек» и «& 2 - Наличные») Когда я нажимаю Alt + 1, я ожидаю нажатия кнопки «Проверить».Это работает, когда я использую стандартные цифровые клавиши на клавиатуре.Однако, когда я нажимаю Alt + 1 с помощью цифровой клавиатуры, Windows берет верх и вставляет символ, который соответствует «alt code» 1. См. http://alt -codes.org / list / Как я могу предотвратить это в моем приложении?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 29 октября 2010

Это можно сделать, включив KeyPreview в форме и обработав событие KeyUp. Следующий код обходит функциональность альтернативных кодов Windows и вызывает нажатие кнопки при нажатии Alt + NumPad1:

if (e.Alt && e.KeyCode == Keys.NumPad1)
{
     e.Handled = true;
     button1.PerformClick();
}
1 голос
/ 29 октября 2010

Возможный способ сделать это - использовать хук клавиатуры , перехватывать нажатия клавиш и затем действовать так, как вам удобноТеперь, решит ли это вышеописанную проблему и не даст ОС вставить код, я не знаю.

1 голос
/ 29 октября 2010

Эта комбинация Alt + numkey является функцией Windows (очень полезна), ее нельзя обойти.
Я пытался это сделать некоторое время назад, работая над игрой (вы знаете ... ярлыки на панели навыков? Я был бы очень рад увидеть и этот способ!

...