我一直在寻找这个答案。在这里查看:How to set a combobox value但我不确定它是否适用于我(可能是错的,请纠正我,如果我的话)。我正在使用VB.Net,VS2012,我需要以编程方式设置数据绑定的数据块的值成员。
我的代码现在如下(这是从一个循环中分配一堆控件值):
cboCountry.SelectedValue = row.Item("CCCOUNTRY").ToString
这不会分配任何选定的值。我也尝试过:
cboCountry.SelectedItem = cboCountry.FindString(row.Item("CCCOUNTRY").ToString)
但这也不起作用。对于这个例子:
同样,我需要做的就是以编程方式设置selectedvalue。任何帮助非常感谢!
答案 0 :(得分:5)
第二次尝试即将结束 - 将SelectedItem替换为SelectedIndex:
cboCountry.SelectedIndex = cboCountry.FindString(row.Item("CCCOUNTRY").ToString)
答案 1 :(得分:2)
您应该使用:
cboCountry.Items.FindByText(row.Item("CCCOUNTRY").ToString()).Selected = True
答案 2 :(得分:2)
今天在vb.net vs2010
中对我有用cboCountry.SelectedIndex = cboCountry.FindString(“CCCOUNTRY”)。ToString
我的控件和值的名称不同,但我继续以前的用户帖子......
答案 3 :(得分:0)
在VB.NET VS2010的项目中,这对我有用
cboCountry.SelectedIndex = cboCountry.FindString("CCCOUNTRY").ToString
当然项目有不同的名称和价值
答案 4 :(得分:0)
我遇到了同样的问题,但没有找到答案 净。显然,微软还没有解决这个问题。我使用VB作为VS2010 WinForms应用程序(在Windows 7中)。我终于决定编写一个工作代码,无论我在哪里尝试预设ComboBox的选定值,我做了以下更改:
' 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