我正在使用Windows窗体(C#)。我在我的窗口位置和大小保存到磁盘中Closing
事件我的形式,使用以下属性:保存应用程序位置和大小的奇怪行为
(int) Width, Height -> using the Form.Size property
(int) LocationX, LocationY -> using the Form.Location property
(bool) Maximized -> using the Form.WindowState property
形式是应用程序的主要形式。当应用程序加载时,我将这些属性设置为表单。这很简单。
那么,大多数时候它的工作是完美的,但有时,只是有时候,应用程序显示非常少。我已经加入调试信息,这些都是形式返回的值:
2011-09-01 20:02:44,334 DEBUG 9884 MainFormSettings - Width -> 160
2011-09-01 20:02:44,334 DEBUG 9884 MainFormSettings - Height -> 27
2011-09-01 20:02:44,334 DEBUG 9884 MainFormSettings - LocationX -> -32000
2011-09-01 20:02:44,334 DEBUG 9884 MainFormSettings - LocationY -> -32000
2011-09-01 20:02:44,334 DEBUG 9884 MainFormSettings - Maximized -> False
我敢肯定,我的窗口是大小(160,27)的不和也位置不-32000,因为我用只有一台显示器。
这似乎发生在我打开应用程序很长一段时间但未知的情况下。
- 你知道为什么有时候为了有这些奇怪的价值吗?
- 可能会影响在关闭事件中存储此事(我也尝试在关闭事件中执行此操作)并获得相同结果?
在此先感谢
在该形式的事件正在装载您要申请这些保存设置后?显示或加载? – Zenwalker
此外,您应该使用FormClosing事件,因为从2.0开始不推荐使用Closing事件。 – TrymBeast
您需要重写OnResize()并将WindowState与存储在变量中的最后一个已知对象进行比较。除非窗口状态为“正常”,否则不要存储大小。 –