2009-04-20 61 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属性手册