【发布时间】:2009-07-23 08:53:47
【问题描述】:
我遇到了一个相当棘手的问题,我会尽量解释清楚。该控件是一个从头开始构建的文本框。它继承自 System.Windows.Forms.Control。
现在,在表单上,我还有一些其他的带有 & 快捷键 (ALT+) 的控件。
当非输入控件聚焦在 winforms 中时,您可以在这些快捷方式中排除 ALT,然后按 .这与我在文本框中遇到的行为完全相同。
这个结果是在 KeyPress 事件被触发之前,焦点转移到另一个控件并且 KeyPress 永远不会被触发。不过 KeyDown 事件会被触发。
我感觉我的控件未被识别为输入控件。
另一个有趣的地方是,如果我在 KeyDown 事件期间设置 SuppressKeyPress = true,焦点将停留在我的控件上,但当然也不触发 KeyPress 事件。
【问题讨论】:
-
您的自定义文本框控件继承自什么?控制?文本框控件?还有什么?
-
它继承自 System.Windows.Forms.Control,如上所述。我已经设法通过 hack 解决了这个问题,但我更喜欢更优雅的解决方案。
标签: c# winforms custom-controls