2010-08-14 92 views
3

在項目的屬性,我創造了這樣的用戶設置不保存(Settings.Default.Save();)

NumberOfUsers int User 10 

的列是名稱,類型,範圍和價值的設置。

然後有一個組合框,用戶可以在其中設置一個'NumberOfUsers'。這個組合有SelectedIndexChanged事件,我在用戶更改組合值時保存更改。下面的代碼:

Settings.Default.NumberOfUsers = combo1.SelectedIndex; 
Settings.Default.Save(); 

與這個組合的形式從父爲frm.ShowDialog();和子窗體的構造函數叫做我嘗試基礎上,設置條目

combo1.SelectedIndex = Settings.Default.NumberOfUsers; 

但是設置組合的選擇指數,這不起作用,即組合不會從設置中拉出值,但它默認爲0作爲選定的索引。

任何人都知道我犯錯的地方?

+0

你確定設置沒有保存?也許這只是組合框的任務不起作用。使用調試器在'combo1.SelectedIndex = Settings.Default.NumberOfUsers'行中斷開並檢查'NumberOfUsers'是否具有正確的值。 – Timwi 2010-08-14 12:22:36

+0

當我關閉應用程序時,我打開項目conf文件,並且「值」框仍然是默認值。這是什麼意思?畢竟存在問題? – trnTash 2010-08-14 12:35:28

回答

0

也許這樣:

Properties.Settings.Default.NumberOfUsers = combo1.SelectedIndex; 
Properties.Settings.Default.Save(); 
combo1.SelectedIndex = Properties.Settings.Default.NumberOfUsers; 
+0

情況並非如此,因爲我在聲明中使用屬性名稱空間 – trnTash 2010-08-14 12:32:51

4

我想你沒有犯任何錯誤。據我所知,VS也在構建期間重新配置配置文件。我會在測試機器上試用它。
它將在一些存儲用戶的設置在用戶的AppData(本地或漫遊?)是這樣的:

應用程序數據\ [Local_or_Roaming] \ YourCompanyName \ yourprogram.exe_Url _ [...] \ 1.0.0.0 \用戶.config

中間的長文件夾名將是sg不同,但我想你會很容易找到它。看看這個文件,看它是否存儲新值。

我在很多地方使用它並且在生產環境中運行良好。 說實話,在開發機器上我從來沒有工作過。

+0

當然,kofucii是對的,你也錯過了Properties。 – Hudgi 2010-08-14 12:25:12

+0

不錯過它,因爲我在使用語句:) – trnTash 2010-08-14 12:34:19

+0

好的,這是一種可能的方式。 :) 關於你的問題,你有沒有在AppData文件夾中檢查它?正如我所提到的,用戶級設置不存儲在exe.config文件中。只有應用程序級別設置存儲在那裏。 – Hudgi 2010-08-14 13:45:33

0

您是在ComboBox中輸入NumberOfUsers的新值還是從下拉列表中選擇它?
如果您輸入的值SelectedIndex不會更改,則不會觸發任何事件。

而且是ComboBox被填充值會從0到10或你有代碼來處理ArgumentOutOfRangeExceptions