ConfigurationManager处理两个表单之间的密码

本文关键字:表单 之间 密码 两个 处理 ConfigurationManager | 更新日期: 2023-09-27 18:24:56

我在一个.NET Framework 3.5项目中有两个Windows窗体FormAFormB

应用程序主功能(位于Programm.cs中)在FormA停止后启动FormB

Application.Run(new FormA());
Application.Run(new FormB());

FormA执行以下操作以使FormB成为AppSetting Password

System.Configuration.Configuration config =
          ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Add("password", textBoxPassword.Text);

没有其他内容:)我不想将密码保存在app.config文件中。

好的,应用程序启动,FormA()出现并关闭,FormB()出现,尝试读取ConfigurationSettings.AppSettings["Password"];,也就是NULL

我如何让这个东西给我带来我在FormA而不是NULL中设置的值?

ConfigurationManager处理两个表单之间的密码

如果您想在表单之间共享数据,只需创建一个具有public static属性的类,并使用它来存储密码。

public static class SharedData
{
    public static string Password { set; get; }
    // ... other shared properties
}

即使您像以前在表单中所做的那样加载配置,以下内容也会起作用:

ConfigurationSettings.AppSettings["password"] = textboxPassword.Text;

在FormA 中

string pwd = ConfigurationSettins.AppSettings["password"];

在FormB 中

如果您不介意耦合表单,那么还有其他选项,例如,为FormB创建一个以密码为参数的构造函数,并调用

new FormB(this.textboxPassword.Text).Show(); 

来自FormA中CCD_ 13方法的重写。

--我之前的回答忽略了一个事实,那就是你不想坚持改变。