【发布时间】:2012-02-10 11:26:13
【问题描述】:
我有一个 MDI 布局 WinForms 应用程序。我想在关闭应用程序以在新启动时检索它们时保存其打开的表单状态(大小、文本框值、选定列表索引...)。
有很多方法可以做到这一点,但如果 MDI 应用程序中有更多给定表单的打开实例,我没有找到保存这些数据的解决方案。例如。如果我有 2 个打开的具有文本框的 Form1 实例。 TextBox 在实例 1 上的文本是“a”,在实例 2 上是“b”。如果我保存它,例如通过使用 .net 的功能到 app.config,instance2 的设置将覆盖 instance1 保存的数据,因为它们是相同的类型。因此,在启动时加载时,两个实例都是 'b'。
如何分别保存它们的状态?保存时如何识别?
【问题讨论】:
-
显然您需要保留一个表单列表,而不仅仅是一个表单。没有任何内置但很容易使用 xml 序列化。
-
我使用了一个可停靠的窗口组件,它可以保持 UI 布局,所以我不需要它。它保留了布局,我必须“仅”保留 UI 上的数据。