如何防止在WinForms TextBox中按下Alt键引起的哔声?

我正在创建一个例程,允许用户将键盘快捷键复制到文本框中以进行“自定义键盘快捷键”自定义,但每次使用另一个字母按下alt键时,它会产生另一个声音。

我正在捕捉textbox_keydown事件中的键,以将修饰符+其他键解析为可读的Shift + A或Ctrl + Shift + B方式到同一个文本框中。 我应该在textbox_previewkey而不是textbox_keydown这样的其他事件中执行此操作吗? 如何防止alt修饰键+导致Beep声音的字母或数字?

文本框只是一个普通的.net 3.5文本框,其唯一编辑的属性是ReadOnly属性为false。 有没有更好的方法可以重新做到这一点?

我现在只是检查是否按下任何修改键然后按+ az或0-9,然后继续将正确按下的键输入到相同的文本框中,如Shift + A或Ctrl + Shift + Y.

处理TextBox的KeyDown事件,例如使用void HandleKeyDown(对象源,KeyEventArgs e),然后输入: if (e.Alt) e.SuppressKeyPress = true;

(也适用于Return键)

你需要设置e.Handled = true; 为了防止击键冒泡。

无视,我能够通过从一开始就抑制键码来解决问题而不影响它的正常function。 这是我用过的:

 e.SuppressKeyPress = (e.KeyCode == e.KeyCode);