ALT + <快捷方式>位于自定义文本框winform控件</shortcut>上的KeyPress事件之前

时间:2009-07-23 08:53:47

标签: c# winforms custom-controls

我有一个相当棘手的问题,我会尽力解释。该控件是从头开始构建的文本框。它继承自System.Windows.Forms.Control。

现在,在表单上,​​我还有一些其他控件与&amp;快捷方式(ALT +)。

当非输入控件聚焦在winforms中时,您可以在这些快捷方式中排除ALT,然后按下。这与我在文本框中遇到的完全相同。

结果是在触发KeyPress事件之前,焦点转移到另一个控件并且KeyPress永远不会被触发。但是,KeyDown事件被触发了。

我感觉我的控制不被识别为输入控件。

另一个值得关注的是,如果我在KeyDown事件期间设置SuppressKeyPress = true,焦点将保留在我的控件上,但当然也不会触发KeyPress事件。

1 个答案:

答案 0 :(得分:0)

您应该在控件中覆盖ProceeMnemonicMethod。您还可以查看ProcessDialogKeyProcessCmdKey方法,以便更好地了解内部WinForms键盘处理。