1

我在开发我的应用程序时非常幸运……直到现在。
我的应用程序的主窗体是一个 MDI 父窗体,直到今晚我才想到在我的测试中添加任何 MDI 子窗体。
令我惊讶的是,MDI 父级现在似乎永远不会“获得焦点”。永远不会调用 Focus 事件和 OnFocus 方法!我的意思是......它看起来很专注,但代码内聚焦事件/方法都不起作用。相反,MDI 子项报告焦点。

我该如何解决?

4

1 回答 1

4

这是设计使然。窗体充当其他窗口、控件的容器。控件获得焦点,用户与按钮或文本框进行交互。只有当表单没有任何控件时它才会获得焦点,只是因为没有其他东西可以得到它。只要您在 MDI 子窗体上放置控件,就会发生同样的事情。或者使用 Panel 或 UserControl,其他容器控件类型。

表单具有激活和停用事件。ActiveForm 告诉你一个当前处于活动状态。注意主动专注的区别。

于 2010-12-23T21:50:13.660 回答