ConfigurationManager处理两个表单之间的密码
本文关键字:表单 之间 密码 两个 处理 ConfigurationManager | 更新日期: 2023-09-27 18:24:56
我在一个.NET Framework 3.5项目中有两个Windows窗体FormA
和FormB
。
应用程序主功能(位于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
中设置的值?
如果您想在表单之间共享数据,只需创建一个具有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方法的重写。
--我之前的回答忽略了一个事实,那就是你不想坚持改变。