這是這樣一個平凡的問題,我想我可以立即修復它,但沒有。 我的表單大小和位置保存在退出時的應用設置中,以便在下次應用運行時進行恢復。如果用戶在最小化時關閉表單,則無法恢復到正常狀態。窗體恢復爲最小化,並單擊任務欄按鈕不執行任何操作。我在FormClosing事件中保存位置和大小,但如果表單最小化,我將保存最小化的大小(160,40)和位置(-32000,-32000),這對於恢復表單完全不正確。我想迫使表單永遠不會恢復到最小化,而是最後正常的大小和位置。不知何故,我必須在表單最小化之前捕獲大小和位置,然後保存,然後在FormClosing中如果表單最小化,則不會保存大小和位置。這可能不是100%清楚,但我希望有人對此有所瞭解。如何還原最小化形式
的FormClosing處理程序:
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Settings.Default.WindowLocation = Location;
Settings.Default.WindowSize = Size;
Settings.Default.WindowState = WindowState;
Settings.Default.Save();
}
恢復代碼:
private void RestoreWindow()
{
Location = Settings.Default.WindowLocation;
if(Location.X == 0 && Location.Y == 0)
StartPosition = FormStartPosition.CenterScreen;
Size = Settings.Default.WindowSize;
WindowState = FormWindowState.Normal;
if(Size.Width > Screen.PrimaryScreen.WorkingArea.Width)
{
Location = new Point(0, Location.Y);
Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Size.Height);
}
if(Size.Height > Screen.PrimaryScreen.WorkingArea.Height)
{
Location = new Point(Location.X, 0);
Size = new Size(Size.Width, Screen.PrimaryScreen.WorkingArea.Height);
}
}
請發表您的Form_Closing事件處理程序代碼。謝謝。 – Maciej
也看到了這個問題:http://stackoverflow.com/questions/2876240/winforms-finding-the-size-of-a-minimized-form-without-going-to-formwindowstate –