我正在使用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與存儲在變量中的最後一個已知對象進行比較。除非窗口狀態爲「正常」,否則不要存儲大小。 –