【发布时间】:2012-07-27 18:00:56
【问题描述】:
有人经常使用 .NET MDI 容器吗?
我有一个 MDI 父窗体,在用户单击工具栏后,它会在其中创建一堆较小的 MDI 子窗体。子窗体都设置为具有最大化按钮,当单击时,它们会填充父容器。但这是我的问题:
一旦您最大化一个子窗体,您打开的所有后续子窗体也会被最大化。同样,如果您打开并最大化了多个子窗体,则单击缩小窗口按钮会缩小所有子窗体。
无论如何要解决这个问题?
谢谢, 艾略特
【问题讨论】:
-
MDI 子窗体都具有相同的
WindowState.是正常的,这被认为是用户偏好,因此干扰它会给用户带来烦恼。您能否解释一下为什么您希望您的应用程序按照您描述的方式运行? -
当父 MDI 关闭时,所有子窗体的位置、大小和 WindowStates 都保存在注册表中。下次加载时,它们将被恢复。表单都可以正常恢复,但是当恢复最大化的表单然后恢复未最大化的表单时会出现一些问题。
-
我在我的一个应用程序中处理类似的事情,我所做的就是在子表单出现时保存
Maximized值 或Size和Location值调整大小。这样就很清楚重启应用时要返回什么状态,并且恢复大小和位置值保持不变 -
是的,我只是希望在 1. 始终最大化所有表单和 2. 可以选择最大化之间有一个折衷,因为用户可能希望同时打开两个表单,一半一半。只是使保存/加载不可靠。