2014-12-02 61 views
-2

我通過連接來自sql語句的數據源來填充組合框。以編程方式更改SelectedValue組合框

dt = select Name as [Name], Code as [Id] from Table 

然後我想瑟對此我用下面的代碼

For Each i as DataRowView in comboBox.Items 

    If i("Name").ToString="Nick" Then 
    comboBox.SelectedIndex=selectedCount 
    Exit For 
    End If 

selectedCount=selectedCount +1 
Next 

這種定位將正確顯示「尼克」在下拉框中默認的組合框「尼克」的默認值,但是當我用下面的代碼去獲取selectedValue時,它得到列表中第一個項目的選定索引而不是默認項目「Nick」。

當我單擊按鈕並查看組合框的SelectedIndex時,它將設置回0,儘管它在comboxbox中顯示正確的selectedValue。

item=comboBox.SelectedValue.ToString 

如何獲得所選值我默認組合框爲?

+0

可能重複(http://stackoverflow.com/questions/18730262/combobox-selectedvalue-not-working:然後使用INT作爲comboBoxe的項目索引設置的項目)。注意完全相同,但我一定會使用'SelectedItem'來代替。 – 2014-12-02 16:37:22

+0

你不能使用'comboBox.SelectedItem = i'嗎?順便說一句,不要忘記關閉「尼克」後面的引號。 – Andrew 2014-12-02 16:38:30

回答

0

這爲我工作:

item = comboBox.Items(comboBox.SelectedIndex).ToString 

如果您的SelectedIndex莫名其妙地被恢復到0,然後聲明一個int,並在循環,設置整數價值的selectedCount。 [ComboBox.SelectedValue不工作]的

Dim index as Int = 0 

For Each i as DataRowView in comboBox.Items 

    If i("Name").ToString="Nick" Then 
    comboBox.SelectedIndex=selectedCount 
    index = selectedCount 
    Exit For 
    End If 

    selectedCount=selectedCount +1 
Next 

item = comboBox.Items(index).ToString 
相關問題