2009-09-30 58 views
0

我正在用C#编写一个MDI应用程序。我想要一种方法来存储所有打开窗口的位置和内容,以便用户可以自定义查看多个文档的方式。有没有简单的方法来做到这一点,或者我将不得不推出我自己的解决方案?如何在.NET中坚持MDI布局?

+0

它看起来像没有内置的方式来做到这一点。 – 2009-10-09 21:37:55

回答

1

我见过几种形式的持久化类,但他们并没有做到我所需要的。我结束了我自己的滚动,基本上从事下列内容:

Control mdiClientControl; 
foreach (Control control in Controls) 
{ 
    if (control is MdiClient) 
    { 
     mdiClientControl = control; 
     break; 
    } 
} 

foreach (Form mdiChild in MdiChildren) 
{ 
    string theName = mdiChild.Name + "_Window_Layout"; 
    DoSave(theName, "Top", mdiChildTop); 
    . 
    . 
    . 
    DoSave(theName, "WindowState", (int)mdiChild.WindowState); 
    DoSave(theName, "Visible", mdiChild.Visible); 
    DoSave(theName, "ChildIndex", theMDIClientControl.Controls.GetChildIndex(mdiChild)); 
} 

DoSave就会()只存储这些信息关在用户空间中的一些XML文件,但是,你可以存储不同的看法,当然。

在适当的时候,比如在启动时,我有一个ReadSettings()方法,它基本上颠倒了过程,询问了保存的设置,设置了值。这个问题可能有一个更优雅的解决方案,但这个对我来说确实很好。

希望有所帮助。