我想知道在应用程序关闭后是否可以在 C# 中保存表单状态?我尝试使用 List,每当我创建一个 Form 实例时,该实例就会添加到 List 中,并且它一直存在,直到它被删除。它工作正常,我可以查看、编辑和删除保存的表单,直到应用程序关闭。那么,考虑到 Form 不可序列化,是否有机会以某种方式保存 List 并稍后加载?
问问题
901 次
1 回答
2
Control 和 Form 类不可序列化。这是有充分理由的,它们的许多属性值在很大程度上取决于程序的执行状态。就像 Handle 一样,非常重要但总是与众不同。UICues,取决于用户是否按下了 Alt 键。即使是位置和大小等简单的事情,也取决于视频适配器设置和用户偏好。
您不想序列化这些属性。您要保留的是用于初始化控件的数据。当然这完全取决于你的程序,根本没有共性。因此,您可以创建一个存储 UI 状态的类。您可以根据需要使其可序列化并选择您喜欢的方式来实现序列化,有很多方法可以做到这一点。在代码中将视图与模型严格分开通常非常重要,这样才能很好地完成这项工作。
于 2013-06-13T11:45:44.703 回答