c# - MDI Form 有焦点吗?

标签 c# winforms focus mdiparent

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

我该如何解决这个问题?

最佳答案

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

表单具有 Activate 和 Deactivate 事件。 ActiveForm 告诉您当前处于事件状态。请注意活跃专注之间的区别。

关于c# - MDI Form 有焦点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522525/

相关文章:

c# - 如何防止自引用表变成循环

c# - 获取sql中连接列的计数

c# - 确定日期是否在 sqlCE 中的 2 个日期之内

c# - 给定内部网站上的 .SQL 文件,有哪些选项可以动态进行漂亮的格式化?

c# - System.Diagnostics.Process.Start() 在 Web 服务器中不起作用

c# - Control.AddRange(...) 很慢

winforms - 在运行时(动态)将 Editor/EditorAttribute 添加到对象的属性

java - 删除/禁用/覆盖 Swing 的焦点遍历键

Javascript 焦点和选择在 FF 中不起作用

javascript - 在不失去焦点的情况下改变?