Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在开发我的应用程序时非常幸运……直到现在。 我的应用程序的主窗体是一个 MDI 父窗体,直到今晚我才想到在我的测试中添加任何 MDI 子窗体。 令我惊讶的是,MDI 父级现在似乎永远不会“获得焦点”。永远不会调用 Focus 事件和 OnFocus 方法!我的意思是......它看起来很专注,但代码内聚焦事件/方法都不起作用。相反,MDI 子项报告焦点。
我该如何解决?
这是设计使然。窗体充当其他窗口、控件的容器。控件获得焦点,用户与按钮或文本框进行交互。只有当表单没有任何控件时它才会获得焦点,只是因为没有其他东西可以得到它。只要您在 MDI 子窗体上放置控件,就会发生同样的事情。或者使用 Panel 或 UserControl,其他容器控件类型。
表单具有激活和停用事件。ActiveForm 告诉你一个当前处于活动状态。注意主动和专注的区别。