我正在用 C# 编写一个 MDI 应用程序。我想要一种方法来存储所有打开的窗口的位置和内容,以便用户可以自定义查看多个文档的方式。有没有一种简单的方法可以做到这一点,还是我必须推出自己的解决方案?
问问题
691 次
1 回答
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() 方法,它基本上反转了过程,询问保存的设置,设置值。这个问题可能有一个更优雅的解决方案,但是这个对我来说效果很好。
希望有帮助。
于 2009-09-30T14:06:06.320 回答