按值选择组合框项c#

本文关键字:组合 选择 | 更新日期: 2023-09-27 17:50:46

我有一个绑定到Datatable的组合框并具有以下属性:

cboCars.DisplayMember = "carLiscen";
cboCars.ValueMember = "carNo";

知道ValueMember如何选择DisplayMember

按值选择组合框项c#

如果你有一个ValueMember设置,你可以选择使用SelectedValue

cboCars.DisplayMember = "carLiscen";
cboCars.ValueMember = "carNo";
cboCars.SelectedValue = "valuemember value";

您可以使用cboCars.SelectedValue = "123";属性。下面的代码片段将显示它的实际效果。

    public void Test()
    {
        ArrayList info = new ArrayList();
        info.Add(new CarInfo { CarLiscen = 123456, CarNo = 123});
        info.Add(new CarInfo { CarLiscen = 234567, CarNo = 234 });
        cboCars.DataSource = info;
        cboCars.DisplayMember = "CarLiscen";
        cboCars.ValueMember = "CarNo";
        cboCars.SelectedValueChanged +=
            delegate(object sender, EventArgs e)
            {
                if (cboCars.SelectedIndex != -1)
                {
                    this.Text = cboCars.SelectedValue.ToString();
                }
            };
        cboCars.SelectedValue = 234;
    }

如果你想知道CarInfo的定义是什么。下面是它的代码(相当简单):

public class CarInfo
{
    public int CarLiscen { get; set; }
    public int CarNo { get; set; }
}

您可以搜索正确的条目并设置它,非常简单:

cbTEST.SelectedIndex = cbTEST.FindStringExact("your search string here");

或根据ListViewItem选择一个项目:

cbTEST.SelectedIndex = cbTEST.FindStringExact(lvTEST.SelectedItems[0].SubItems[0].Text);

这它。很简单的!

嗨,伙计们,如果搜索文本或值的最佳方式

int Selected;    
int count = ComboBox1.Items.Count;
    for (int i = 0; (i<= (count - 1)); i++) 
     {        
         ComboBox1.SelectedIndex = i;
        if ((string)(ComboBox1.SelectedValue) == "SearchValue") 
        {
            Selected = i;
        }
    }
    ComboBox1.SelectedIndex = Selected;

问题是组合框需要准确的类型。例如,如果你使用一个datagridview并且你在字段中看到value (int),你将它传递给组合的SelectedValue属性。但实际上你传递的不是一个整数,而是一个对象。这通常是出错的地方。我花了一些时间来理清这个问题,但我终于找到了怎么做的办法。如何解决这个问题……容易:

例如,您有一个ID(数据库中的整数),那么您需要做如下操作:

这是我所做的,它不起作用:cmbFilter。

你应该这样做,使它工作:int intCategory = Convert.ToInt32(dgvListOfFilters.Rows[intRowSelected].Cells[3].Value);cmbFilter。SelectedValue = intCategory;