1
当用户调整大小并调整我的程序窗口(Winforms)的位置时,即使关闭并重新打开程序后,他们也期望在同一位置看到窗口。我所做的是存储窗体的宽度,高度,Location.X和Location.Y属性,并在程序重新打开时重新设置它们。当窗口最大化时获得非最大化的窗口位置/大小
问题是当窗口最大化时,宽度,高度,X,Y不是指最大化宽度/高度/ X/Y,而是指最大化尺寸。
因此,当用户使窗口最大化时,关闭并重新打开程序,并取消窗口的最大化,而不是返回到原来的位置/大小,它将保持全尺寸/位置。
因此,在某些事件执行后,如果不使用kludge存储变量,那么当窗口最大化时如何获得非最大化的位置和大小?
为什么地球上你会比较枚举的字符串表示形式?只需做一个简单的'WindowState!= FormWindowState.Maximized'。 – cremor
除了@ cremor的建议,您可以通过将'WindowState == FormWindowState.Maximized'分配给var并测试该布尔值来进一步改进此答案。 –
好了。我搜索了大约15分钟来查找RestoreBounds属性,所以这是答案的肉,并且它被应用于我创建的旧代码,所以请原谅我没有为优化而节省5毫秒;) –