在 C# windows 窗体中制作的保存/加载控件
Posted
技术标签:
【中文标题】在 C# windows 窗体中制作的保存/加载控件【英文标题】:Save/load controls made inside C# windows forms 【发布时间】:2013-06-05 03:32:44 【问题描述】:我正在开发一个程序,用户将图片框、标签等控件添加到组框中,我希望能够将他的工作保存到文件中,以便他以后可以打开它,我只有以前使用过xml,我想知道你的意见,你认为将控件保存到xml文件是解决这个问题的好方法吗?或者也许通过循环所有控件来通过流写入器传递所有数据?或者其他解决方案,我想知道你在这种情况下推荐什么。
提前致谢, 大卫N
【问题讨论】:
【参考方案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 类添加的自定义控件,否则您将不得不以某种方式传递它们。我不建议循环遍历所有表单控件,而是跟踪您通过 CustomControls 类动态添加的内容。这也将使您能够实现撤消和重做等功能。
【讨论】:
【参考方案2】:如果我需要做出决定,我会尝试实现 xml,devExpress 为此使用 xml。看看下面的链接
http://documentation.devexpress.com/#WindowsForms/CustomDocument4879
例子非常好用,不知道实现起来是不是很难。
navBarControl1.SaveToXml("c:\\NavBarLayout.xml");
navBarControl2.RestoreFromXml("c:\\NavBarLayout.xml");
【讨论】:
以上是关于在 C# windows 窗体中制作的保存/加载控件的主要内容,如果未能解决你的问题,请参考以下文章
如何制作一个 C# Windows 窗体应用程序,为 Windows 应用商店转换,从 Windows 开始
用vs2010制作了c#windows窗体程序,但打包时在解决方案资源管理器窗口中找不到解决方案无