Как предотвратить звуковой сигнал, вызванный нажатием клавиши alt в текстовом окне WinForms? - PullRequest
2 голосов
/ 06 апреля 2009

Я создаю процедуру, которая позволяет пользователю копировать сочетания клавиш в текстовое поле для настройки «настраиваемых сочетаний клавиш», но каждый раз, когда клавиша alt нажимается с другой буквой, он издает другой звук.

Я фиксирую ключи в событии textbox_keydown, чтобы проанализировать модификаторы + другие ключи в удобочитаемом виде Shift + A или Ctrl + Shift + B в том же текстовом поле. Должен ли я делать это в другом событии, например textbox_previewkey вместо textbox_keydown? Как я могу предотвратить использование клавиши-модификатора alt + буквы или цифры, вызывающих звуковой сигнал?

текстовое поле является обычным текстовым полем .net 3.5 с единственными отредактированными свойствами, являющимися свойством ReadOnly для false. Есть ли лучший способ, которым я мог бы сделать это заново?

В настоящее время я просто проверяю, что если нажимаются какие-либо клавиши-модификаторы, а затем + az или 0-9, то для продолжения и ввода соответственно нажатых клавиш в то же текстовое поле, как Shift + A или Ctrl + Shift + Y.

Ответы [ 3 ]

4 голосов
/ 18 июня 2010

Обработка события KeyDown TextBox, например с void HandleKeyDown (источник объекта, KeyEventArgs e) и внутри введите: if (e.Alt) e.SuppressKeyPress = true;.

(также работает для клавиши возврата)

1 голос
/ 06 апреля 2009

Не обращая внимания, я смог решить проблему, подавив код клавиши с самого начала, не затрагивая его нормальные функции. Вот что я использовал:

e.SuppressKeyPress = (e.KeyCode == e.KeyCode);
1 голос
/ 06 апреля 2009

Вам нужно установить e.Handled = true;, чтобы предотвратить всплеск нажатия клавиш.

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