在C#</form>中保存并加载List <form>

时间:2013-06-13 09:04:18

标签: c# winforms list savestate

我想知道在应用程序关闭后以某种方式可以在C#中保存Form状态吗?我尝试使用List,每当我创建一个Form实例时,实例就会被添加到List中,并且它一直存在,直到它被删除。它工作正常,我可以查看,编辑和删除已保存的表单,直到应用程序关闭。因此,考虑到Form不可序列化,是否有机会以某种方式保存List,并在以后加载它?

1 个答案:

答案 0 :(得分:2)

Control和Form类不可序列化。这是一个非常好的理由,很多的属性值严重依赖于程序的执行状态。像Handle一样,非常重要,但总是不同。 UICues,取决于用户是否按下Alt键。甚至简单的事情,如位置和大小,取决于视频适配器设置和用户首选项。

您不会想要序列化这些属性。您要保留的是用于初始化控件的数据。这当然完全取决于您的计划,没有任何共性。因此,您需要创建一个存储UI状态的类。您可以根据需要对其进行序列化,并选择实现序列化的首选方法,有很多方法可以实现。在代码中严格地将视图与模型分开通常非常重要,以便有效地完成这项工作。