C#在两个winforms之间保存数据

时间:2011-11-02 08:44:35

标签: c# winforms persist

我还没能找到解决问题的方法。我所拥有的是两个winforms,Main和Configuration Settings表单。可以从主窗体的菜单访问配置设置表单。

我想要做的是拥有配置设置表单的单个实例,因此当用户在表单中输入信息时,它会被传递回主表单并关闭。但是,如果用户决定返回配置设置,则会显示先前输入的信息。

配置设置基本上有两个输入框和一个OK按钮。

我该如何实现?

2 个答案:

答案 0 :(得分:2)

出于配置目的,您可以使用单例模式存储配置数据。

class ConfigurationStorage{
      private static ConfigurationStorage _instance;

      // settng example - ConnectionString    
      public string ConnectionString {get;set;}

      public static ConfigurationStorage GetInstance(){
          return _instance ?? (_instance =  new ConfigurationStorage());
      }
}

在配置表格中,您可以:

ConfigurationStorage.GetInstance().ConnectionString  = "buu";

用于存储数据,在Main表单中存储相同的内容(因为它是同一个对象)

您也可以使用Form Parent属性将设置明确设置为MainForm。

答案 1 :(得分:0)

你有很多选择。例如:

  • 您可以将最新的序列化配置数据存储在硬盘上 drive \ DB(使用一些临时文件)。
  • 您可以将最后定义的配置作为构造函数参数传递(和 在收到后将其返回给调用表格。
  • 您可以取消表单的关闭事件并隐藏它,以及何时隐藏 你尝试重新打开它,你可以看到它。
  • 你可以使用单身人士(比如@Kamil说)

在配置窗口方面,我喜欢将数据存储到驱动器\ DB或将其初始状态传递给构造函数。