2009-04-20 39 views
2

我正在C#中創建一個簡單的對話窗口,並且想記住它的放置位置,以便以後可以在同一個地方打開另一個窗口(在同一應用程序運行期間,如此不需要配置文件等)。我可以輕鬆地保存位置(點)或邊界(矩形),但在創造另一種形式,呼籲form.ShowDialog()可以復位:試圖使對話框窗口記住它的最後位置

Form form= new Form(); 

form.Location = ptSavedLocation; 
//now form.Location is correct 

form.ShowDialog(); 
//now form.Location is default again, and form is displayed where I don't want it. 

我怎樣才能獲得的形式尊重其位置(或邊界,或任何其他適當的財產/設置者)?謝謝!

+0

不要忘記檢查保存的位置是否仍然在*當前*顯示器的可視區域內。這對用戶來說可能是一種痛苦,例如當使用漫遊配置文件或遠程桌面和不同的屏幕分辨率(如家庭辦公室) – 2009-04-20 11:10:44

回答

4

將表格的起始位置設置爲手動

例如,

Form form= new Form(); 

form.StartPosition = FormStartPosition.Manual; 

form.Location = ptSavedLocation; 
//now form.Location is correct 

form.ShowDialog(); 
//now form.Location is default again, and form is displayed where I don't want it. 
+0

謝謝,這正是我所尋找的。 – 2009-04-20 10:44:42

0

設置形式中StartPosition屬性手冊