2013-07-29 32 views
2

我是winforms的初學者,剛開始使用它的偏好。Winforms偏好值

因此,我在我的Settings.settings中添加一個名爲path的值,作爲字符串和用戶範圍。

更改它,當我選擇了FolderBrowserDialog,然後一個新的路徑,在OK按鈕點擊後,我改變首選項是這樣的:

private void buttonPref_Click(object sender, EventArgs e) 
     { 
      Form2 subForm2 = new Form2(textBoxRep.Text); 
      subForm2.ShowDialog(); 

      if (subForm2.DialogResult == DialogResult.OK) 
      { 
       Settings.Default.path= subForm2.rep(); 
       subForm2.Close(); 
      } 
      else 
      { 
       subForm2.Close(); 
      } 
     } 

      public string rep() 
      { 
       return textBoxRep.Text; 
      } 

然後,當我跑我的應用程序,我在我的偏好設置中加載該值:

textBoxRep.Text = Settings.Default.path; 

但是,每次新運行後,該值都設置爲空。

所以,我試圖用的應用範圍,但我得到了這個只讀錯誤:Settings.Default.path

我該如何解決這個問題?有什麼方法可以在對它們進行虛擬化後註冊設置?

謝謝。

+0

你打電話Settings.Default.Save()在任何地方以保存設置到配置文件? –

+1

另外值得注意的是,如果您在VS中運行,每次重新運行應用程序時,配置文件都會被寫入。 –

+0

感謝您的精確度。 –

回答

4

你需要調用保存方法如下

Settings.Default.path= subForm2.rep(); 

Settings.Default.Save(); 

設置是應用程序範圍內是隻讀的,並且只能在設計時或通過改變config文件中之間 改變 應用程序會話。但是,用戶範圍的設置可以在運行時寫入 ,就像更改任何屬性值一樣。 新值在應用程序會話期間持續存在。 通過調用Save方法,您可以在應用程序會話 之間持續更改設置。

How To: Write User Settings at Run Time with C#

+0

謝謝。完整答案。奇怪的是,當我第一次嘗試時,.Save()沒有出現。但重新打開Visual Studio後,它就是這樣。 –