【发布时间】:2012-07-21 17:56:15
【问题描述】:
我一直在四处寻找,发现这两篇文章:
- Restoring Window Size/Position With Multiple Monitors
- C#: How to make a form remember its Bounds and WindowState (Taking dual monitor setups into account)
问题是这些文章在我的问题的范围内,但我不能像我看到的那样使用它们(除非我让我的解决方案变得非常复杂)。虽然文章谈到了在他们完全关闭应用程序后恢复表单,但这并不是我想要完成的任务。
我正在做的是在同一个正在运行的应用程序中关闭和打开同一个表单。当这种情况发生时,我希望它具有与我关闭时相同的位置、状态和大小。这是直截了当的,因为我可以从表单对象中保存位置、状态和大小,处理它并将旧值应用于我的新表单。这可行,但如果我在监视器 2 上有一个最大化的窗口,并且关闭/打开功能运行,它会打开在监视器 1 上最大化的表单。
在上述情况下,是否有任何简单的方法可以将其保持在监视器 2 上,还是我必须深入研究复杂的库?
【问题讨论】:
-
据我所见,这两个示例都存储了 form 关闭时的窗口位置,而不是应用程序。
-
注意分配属性的顺序。 首先设置Location,然后设置WindowState。反过来做就错了。
-
@HansPassant 你是对的。这只是以正确的顺序设置值的问题。非常感谢。