2010-11-17 65 views
3

我正在嘗試做一些我認爲在WinForms中會相對簡單的事情,但事實並非如此。ComboBox數據源和application.setting問題

這就是我想做的事:

有一個從數組填充一個組合框的下拉值。例如:

Dim versions As String() = New String() {"3", "4"} 
cmbVersion.DataSource = versions 

簡單,沒問題。但是,我遇到的問題是,我將這個組合框綁定到了名爲MyVersion的user.settings(一個字符串值)。該值目前是「4」。

當我加載我的表單時,我預計下拉列表將是'3'和'4',並且顯示的文本將是MyVersion中的任何內容。這不起作用。該值始終爲「3」,在組合框中將其更改爲「4」對MyVersion沒有影響。

我在這裏做錯了什麼?

+0

能否請你說明你是如何定義的設置和組合框之間的綁定。你有代碼嗎? (如果是這樣,你能告訴我們嗎?)或者你是否在設計師那裏做過? – 2010-11-20 11:30:19

回答

1

首先,我認爲您應該認識到來自My.Settings.MyVersion的值不是您在項目屬性/設置中定義的值。這些只是初始(默認)值。實際值來自user.config文件。 user.config文件是在第一次運行時由新用戶運行應用程序並將非默認值寫入用戶範圍設置的運行時自動創建的。 的位置是這樣的:

C:\ Documents和Settings \ [用戶名] \本地設置\應用數據\ [公司名稱] [appdomainname] [EID] [散列] \ [verison]

儘管每個操作系統可能有所不同

其次,設置沒有得到堅持,直到你告訴它,通過調用:

My.Settings.Save() 

我希望這個澄清事情有點。

您可以通過設置SelectedItem屬性的值綁定,無論在設計或致電:

cmbVersion.SelectedItem = My.Settings.Myversion