簡體   English   中英

ConfigurationManager處理兩個表單之間的密碼

[英]ConfigurationManager handling Passwords between two Forms

我在一個.NET Framework 3.5項目中擁有兩個Windows Forms FormAFormB

FormA停止后,Applications Main函數(放置在Programm.cs中)啟動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(); 

OnClosing()中的OnClosing()方法的重寫內。

-我先前的答案錯過了您不想保留更改的事實。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM