如何从c#中的组合框中获取价值?

我无法使用C#从WinForms中获得
ComboBox
的价值。 我有一个
ComboBox
填充了一个值列表,我已经设置了
ValueMember
DisplayMember
。 现在,我必须找到所选
ComboBox
项的值,并在UI中选择匹配的项。 这就是我的意思: - 我像这样装了
ComboBox
: -
var list = (from l in db.Loc
            orderby l.LName ascending
            select l).ToList();
list.Insert(0, new Loc { ID = "-1", Name = "--Select--" });
cmb1.BindingContext = new BindingContext();
cmb1.DataSource = list;
cmb1.DisplayMember = "Name";
cmb1.ValueMember = "ID";
现在,在一个事件中,我试图匹配值(
ID
)并选择项目。如果我匹配
Text
属性很容易:
cmb1.Text = data.Name;
但如何匹配价值? 像这样: -
cmb1.Value = data.ID;
    
已邀请:
这应该工作:
cmb1.SelectedValue = data.ID;
    
如果您只知道项目的ID,您也可以使用:
cmb1.SelectedValue = data.ID;
    
为什么要为“ComboBox Value”属性分配“匹配”值? 只要您正确设置了DisplayMember和ValueMember,并且DataSource将两者都作为属性实现,那么值将自动“匹配”,例如,您可以在事件处理程序中读取Value属性以获得此“匹配”值。     
data
必须在
list
combobox
结合,然后:
cmb1.SelectedItem = data
或者,如果不是(你从某个地方检索了另一个实例):
cmb1.SelectedValue = data.ID
    
首先:
cmb1.Text = text;
ComboBox
的文本更改为指定值。它不会选择具有与指定值匹配的文本的项目。 使用
cmb1.SelectedValue = value;
选择具有固定值的项目。     
您可以使用
Combo1.SelectedIndex
属性获取索引。您可以使用
Combo1.SelectedItem
Combo1.Items[Combo1.SelectedIndex]
获取该项目     

要回复问题请先登录注册