我正在开发一个程序,用户将控件(如picturebox,label等)添加到groupbox中,我希望能够将他的工作保存到一个文件中,所以他以后可以打开它,我以前只使用过xml,并且我想知道您的意见,您认为将控件保存到xml文件中是解决此问题的好方法吗?或者,也许可以通过循环所有控件,通过Streamwriter传递所有数据?或者另一种解决方案,我想知道你在这种情况下推荐什么。保存/加载在C#窗体窗体内制作的控件
在此先感谢, DavidN
我正在开发一个程序,用户将控件(如picturebox,label等)添加到groupbox中,我希望能够将他的工作保存到一个文件中,所以他以后可以打开它,我以前只使用过xml,并且我想知道您的意见,您认为将控件保存到xml文件中是解决此问题的好方法吗?或者,也许可以通过循环所有控件,通过Streamwriter传递所有数据?或者另一种解决方案,我想知道你在这种情况下推荐什么。保存/加载在C#窗体窗体内制作的控件
在此先感谢, DavidN
他们说,不要重新发明轮子,但你可以做到这一点的方法了不知多少。这实际上取决于用户的风格,格式和观众。有时候我喜欢用简单的txt样式文件来处理所有事情,这样任何人都可以轻松地编辑信息。 XML将使您能够更轻松地组织您的信息,这可能会更好。这真的取决于你,我会说任何你更舒服的。我个人会自己做一个小算法来搜索一个简单的txt文件,但那是因为我没有使用XML。
您应该创建一个类来处理保存和加载文件。
喜欢的东西
public class CustomControls
{
//more code
public void AddCustomControl(Control x) { }
public void RemoveCustomControl(Control x) { }
public void UndoControl() { }
public void RedoControl() { }
public void SaveControls(string file){}
public void LoadControls(string file){}
//more code
}
我想你开始你的类来处理保存工作,并加载你将有什么会令你更容易和最终用户更清楚地了解之后。
*您还会注意到您可能想要跟踪通过理论上的CustomControls Class添加的自定义控件,否则您将不得不通过它们。我不建议循环遍历所有表单控件,而是跟踪通过CustomControls类动态添加的内容。这也将使您能够实现撤消和重做等功能。
如果我需要做出决定,我会尝试实现xml,devExpress使用xml来达到此目的。看看以下网站
http://documentation.devexpress.com/#WindowsForms/CustomDocument4879
这个例子是非常容易使用,但我不知道,如果实施起来非常困难。
navBarControl1.SaveToXml("c:\\NavBarLayout.xml");
navBarControl2.RestoreFromXml("c:\\NavBarLayout.xml");