2013-02-01 37 views
2

我一直在尋找這個答案。這裏檢查:How to set a combobox value但我不知道它是否適用於我(可能是錯的,如果我是,請糾正我)。我使用VB.Net,VS2012,我需要以編程方式設置數據綁定的組合框的值成員。以編程方式設置combobox的值成員

我的代碼現在是如下(這是從一個循環分配一束控制值範圍內):

cboCountry.SelectedValue = row.Item("CCCOUNTRY").ToString 

這不分配任何選擇的值。我也嘗試過:

cboCountry.SelectedItem = cboCountry.FindString(row.Item("CCCOUNTRY").ToString) 

但是這也行不通。對於這種情況:

  1. 我有一個組合框
  2. 它有兩個值數據綁定在它的valuemember性質,「美國」和「CA」
  3. 我正在給它分配行產品之一那些價值。

同樣,我需要做的就是以編程方式設置selectedvalue。任何幫助非常感謝!

回答

4

你接近你的第二次嘗試 - 用的SelectedIndex取代的SelectedItem:

cboCountry.SelectedIndex = cboCountry.FindString(row.Item("CCCOUNTRY").ToString) 
2

你應該使用:

cboCountry.Items.FindByText(row.Item("CCCOUNTRY").ToString()).Selected = True 
1

這今天在vb.net VS2010爲我工作

cboCountry.SelectedIndex = cboCountry.FindString(「CCCOUNTRY」)。ToString

名稱控制和值對我來說是不同的,但我延續了以往用戶的帖子...

0

這一個項目,VB.NET VS2010

cboCountry.SelectedIndex = cboCountry.FindString("CCCOUNTRY").ToString 

課程的項目有不同的名字爲我工作和值

0

我一直在遇到同樣的問題,並沒有在 網絡上找到答案。顯然,微軟還沒有解決這個問題。我正在使用VB來處理VS2010 WinForms應用程序(在Windows 7中)。我終於決定圍繞代碼的工作,無論我試圖預設組合框的選定值我提出了以下變化:

' my_cbx.SelectedValue = data_row.value ' doesn't work! 
PresetSelectedValue(my_cbx, data_row.value) 

然後,我添加了下面的子例程由上述變化被稱爲:

Public Sub PresetSelectedValue(ByRef ComboBox As ComboBox, ByVal value As Object) 
    Dim item_ndx As Integer 

    If ComboBox Is Nothing Then 
     ' throw exception? 
     Exit Sub 
    End If 
    With ComboBox 
     .Tag = "PresetSelectedValue" 
     For item_ndx = 0 To .Items.Count - 1 
      .SelectedIndex = item_ndx 
      If .SelectedValue = value Then 
       Exit For 
      End If 
     Next 
     If item_ndx >= .Items.Count Then 
      .SelectedIndex = -1 
     End If 
     .Tag = "" 
    End With 
End Sub 

最後,添加以下代碼到我ComboBox.SelectedValueChanged事件 (這可防止正常事件邏輯當用戶改變上述被 上的每個迭代執行的For循環在我的子程序的值):

If my_cbx.Tag = "PresetSelectedValue" Then 
    Exit Sub 
End If 
相關問題