2013-06-05 94 views
0

我正在开发一个程序,用户将控件(如picturebox,label等)添加到groupbox中,我希望能够将他的工作保存到一个文件中,所以他以后可以打开它,我以前只使用过xml,并且我想知道您的意见,您认为将控件保存到xml文件中是解决此问题的好方法吗?或者,也许可以通过循环所有控件,通过Streamwriter传递所有数据?或者另一种解决方案,我想知道你在这种情况下推荐什么。保存/加载在C#窗体窗体内制作的控件

在此先感谢, DavidN

回答

1

他们说,不要重新发明轮子,但你可以做到这一点的方法了不知多少。这实际上取决于用户的风格,格式和观众。有时候我喜欢用简单的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类动态添加的内容。这也将使您能够实现撤消和重做等功能。