我有一个相当棘手的问题,我会尽力解释。该控件是从头开始构建的文本框。它继承自System.Windows.Forms.Control。
现在,在表单上,我还有一些其他控件与&快捷方式(ALT +)。
当非输入控件聚焦在winforms中时,您可以在这些快捷方式中排除ALT,然后按下。这与我在文本框中遇到的完全相同。
结果是在触发KeyPress事件之前,焦点转移到另一个控件并且KeyPress永远不会被触发。但是,KeyDown事件被触发了。
我感觉我的控制不被识别为输入控件。
另一个值得关注的是,如果我在KeyDown事件期间设置SuppressKeyPress = true,焦点将保留在我的控件上,但当然也不会触发KeyPress事件。
答案 0 :(得分:0)
您应该在控件中覆盖ProceeMnemonicMethod。您还可以查看ProcessDialogKey和ProcessCmdKey方法,以便更好地了解内部WinForms键盘处理。