我有一个字符串“test1”,我的组合框包含test1、test2和test3。如何设置选中项为“test1”?也就是说,我如何匹配我的字符串到一个组合框项目?
我想的是下面这行,但这不行。
comboBox1.SelectedText = "test1";
我有一个字符串“test1”,我的组合框包含test1、test2和test3。如何设置选中项为“test1”?也就是说,我如何匹配我的字符串到一个组合框项目?
我想的是下面这行,但这不行。
comboBox1.SelectedText = "test1";
当前回答
我使用KeyValuePair ComboBox数据绑定,我想通过值找到项目,所以这在我的情况下工作:
comboBox.SelectedItem = comboBox.Items.Cast<KeyValuePair<string,string>>().First(item=> item.Value == "value to match");
其他回答
我使用KeyValuePair ComboBox数据绑定,我想通过值找到项目,所以这在我的情况下工作:
comboBox.SelectedItem = comboBox.Items.Cast<KeyValuePair<string,string>>().First(item=> item.Value == "value to match");
ListItem li = DropDownList.Items.FindByValue("13001");
DropDownList.SelectedIndex = ddlCostCenter.Items.IndexOf(li);
你的案子可以用
DropDownList.Items.FindByText("Text");
ComboBox1.SelectedIndex= ComboBox1.FindString("Matching String");
在windows窗体中尝试此操作。
你试过文本属性了吗?这对我很管用。
ComboBox1.Text = "test1";
SelectedText属性用于组合框的文本框部分中可编辑文本的选定部分。
我使用了一个扩展方法:
public static void SelectItemByValue(this ComboBox cbo, string value)
{
for(int i=0; i < cbo.Items.Count; i++)
{
var prop = cbo.Items[i].GetType().GetProperty(cbo.ValueMember);
if (prop!=null && prop.GetValue(cbo.Items[i], null).ToString() == value)
{
cbo.SelectedIndex = i;
break;
}
}
}
然后使用该方法:
ddl.SelectItemByValue(value);