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

时间:2011-04-11 15:32:01

标签: c# winforms combobox

我无法使用C#从WinForms中获取ComboBox的值。

我有ComboBox填充了值列表,我设置了ValueMemberDisplayMember

现在,我必须找到所选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;

6 个答案:

答案 0 :(得分:3)

如果您只知道项目的ID,也可以使用:

cmb1.SelectedValue = data.ID;

答案 1 :(得分:2)

这应该有效:

cmb1.SelectedValue = data.ID;

答案 2 :(得分:1)

data必须位于list绑定到combobox,然后:

cmb1.SelectedItem = data

或者,如果不是(你从某个地方检索了另一个实例):

cmb1.SelectedValue = data.ID

答案 3 :(得分:1)

为什么要为“ComboBox Value”属性分配“匹配”值? 只要您正确设置了DisplayMember和ValueMember,并且DataSource将两者都作为属性实现,那么值将自动“匹配”,例如,您可以在事件处理程序中读取Value属性以获得此“匹配”值。

答案 4 :(得分:1)

首先:cmb1.Text = text;ComboBox的文本更改为指定值。它不会选择具有与指定值匹配的文本的项目。

使用cmb1.SelectedValue = value;选择具有固定值的项目。

答案 5 :(得分:0)

您可以使用Combo1.SelectedIndex属性获取索引。您可以使用Combo1.SelectedItemCombo1.Items[Combo1.SelectedIndex]

来获取该项目