我正在创建一个例程,允许用户将键盘快捷键复制到文本框中以进行“自定义键盘快捷键”自定义,但每次使用另一个字母按下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.
答案 0 :(得分:4)
处理TextBox的KeyDown事件,例如with void HandleKeyDown(对象源,KeyEventArgs e)和内部输入:if (e.Alt) e.SuppressKeyPress = true;
。
(也适用于Return键)
答案 1 :(得分:1)
您需要设置e.Handled = true;
以防止击键冒泡。
答案 2 :(得分:1)
无视,我能够通过从一开始就抑制键码来解决问题而不影响它的正常功能。这是我使用的:
e.SuppressKeyPress = (e.KeyCode == e.KeyCode);