C# MDI是否以表单为中心?

C# MDI是否以表单为中心?,c#,winforms,focus,mdiparent,C#,Winforms,Focus,Mdiparent,我很幸运开发了我的应用程序。。。直到现在。 我的应用程序的主窗体是MDI父窗体,直到今晚我才想到在测试中添加任何MDI子窗体。 令我惊讶的是,MDI家长现在似乎从未“获得关注”。永远不会调用焦点事件和OnFocus方法!我是说。。。它看起来是聚焦的,但代码内聚焦的事件/方法都不起作用。相反,MDI子级报告焦点 如何修复此问题?这是出于设计。窗体充当其他窗口、控件的容器。控件获得焦点,用户与按钮或文本框进行交互。只有当窗体没有任何控件时,它才能获得焦点,因为没有其他控件可以获得焦点。在MDI子窗体

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


如何修复此问题?

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


表单具有激活和停用事件。ActiveForm告诉您当前有一个处于活动状态。注意活动和聚焦之间的区别。

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


表单具有激活和停用事件。ActiveForm告诉您当前有一个处于活动状态。注意活动和聚焦之间的区别。

为什么需要聚焦?您使用的是哪种GUI框架?@David Heffernan,当然是WinForms。(据我所知,WPF中没有MDI…)编辑:我需要知道它是否专注于您之前帮助我的内容。:)为什么它需要焦点?您使用的是哪种GUI框架?@David Heffernan,当然是WinForms。(据我所知,WPF中没有MDI…)编辑:我需要知道它是否专注于您之前帮助我的内容。:)活动窗体是否包含聚焦控件?:D仔细想想,我相信你会明白的:D(删除旧评论)这完全有效!非常感谢你!活动窗体是否包含聚焦控件?:D仔细想想,我相信你会明白的:D(删除旧评论)这完全有效!非常感谢你!