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

发布于 2024-12-13 08:58:26 字数 198 浏览 0 评论 0原文

我还没有找到解决我的问题的方法。我有两个 winform,主窗体和配置设置窗体。可以从主窗体的菜单访问配置设置窗体。

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

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

我怎样才能实现这个?

I have not been able to find a solution to my problem yet. What I have is two winforms, Main and a Configuration Settings form. The configuration settings form can be accessed from the menu of the Main form.

What I want to do is have a single instance of the Configuration settings form so when the user enters the information in the form it gets passed back to the main form and closes. But if the user decides to go back to the configuration settings form the previous entered information appears.

The configuration settings basically has two input boxes and an OK button.

How can I implement this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

影子的影子 2024-12-20 08:58:26

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

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";

存储数据,并在主表单中执行相同的操作来检索数据(因为是同一对象)

此外,您还可以使用 Form Parent 属性将设置显式设置为 MainForm。

For configuration purpose you can use singleton pattern to store configuration data.

class ConfigurationStorage{
      private static ConfigurationStorage _instance;

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

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

In configuration form you can do:

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

to store data, and same thing in Main form to retrive it (because is the same object)

Also you can use Form Parent property to set settings explicity to MainForm.

终难愈 2024-12-20 08:58:26

你有很多选择。例如:

  • 您可以将最新的序列化配置数据存储在硬盘上
    驱动器\DB(使用一些临时文件)。
  • 您可以将最后定义的配置作为构造函数参数传递(并且
    关闭时将其返回到调用表单)。
  • 您可以取消表单的关闭事件并隐藏它,当
    你尝试重新打开它,却让它可见。
  • 你可以使用单例(就像@Kamil所说)

当谈到配置窗口时,我喜欢将它们的数据存储到drive\DB或将它们的初始状态传递给构造函数。

You've got many options. For instance:

  • You can store the latest serialized configuration data on the hard
    drive\DB (using some temp file).
  • You can pass the last defined config as a constructor parameter (and
    return it to the calling form upon close).
  • You can cancel the form's close event and hide it instead, and when
    you try to reopen it, you make it visible instead.
  • you can use a singletone (like @Kamil said)

When it comes to configuration windows, I like to either store their data to the drive\DB or to pass their initial state to the constructor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文