C# - 从组合框中检索选定的值

时间:2013-02-26 07:39:04

标签: c# .net winforms visual-studio-2010

我有一个包含ValueMember = IDDisplayMember = Name的组合框。我需要与该名称相关联的值,因此我执行以下操作:

if (cboTypeOfMaterial.SelectedIndex != -1)
            {
                string temp = cboTypeOfMaterial.SelectedValue.ToString();
                //More code here...
            }

ID值作为字符串返回。例如 - “7”。

如果我尝试:

if (cboTypeOfMaterial.SelectedIndex != -1)
                {
                    string temp = cboTypeOfMaterial.DisplayMember.ToString();
                    //More code here...
                }

我得到字符串Name这是关键。

我需要的是获取所选元素Name

的值

6 个答案:

答案 0 :(得分:4)

尝试通过SelectedItem访问该元素,这将为您提供与该条目相关联的整个对象,然后您可以访问所需的属性ID

答案 1 :(得分:4)

SelectedValue将返回ValueMember中定义的属性的值,SelectedItem将返回所选的整个对象,如果您想获得除{{1}之外的其他值您必须在SelectedValue中投射对象,然后才能访问ComboBox媒体资源。

Name

答案 2 :(得分:1)

您可以做的是为comboBox中的条目创建自定义类。这看起来像:

public class ComboBoxItem
{
    public string Display { get; set; }
    public int Id { get; set; }
    public override string ToString()
    {
        return this.Display;
    }
}

然后,您可以通过以下代码获取所选的ComboBoxItem:

ComboBoxItem cbi = (ComboBoxItem)cboTypeOfMaterial.SelectedValue;
if(cbi != null)
   // Access the Property you need

答案 3 :(得分:1)

我知道这是一个老问题,但我很惊讶没有人提到过:

.classname:hover{
    -webkit-filter: drop-shadow(1px 1px 0 yellow)
                    drop-shadow(-1px -1px 0 yellow);
    filter: drop-shadow(1px 1px 0 yellow) 
            drop-shadow(-1px -1px 0 yellow);
}

返回所选项目的文本表示(即ComboBox1.GetItemText(ComboBox1.SelectedItem) ),在涉及数据绑定DisplayMember或任何ComboBox的情况下非常有用。

答案 4 :(得分:0)

string temp = cboTypeOfMaterial.ValueMember.ToString();

答案 5 :(得分:-2)

我认为您也可以使用Text属性,但这不是一个很好的解决方案。更好的解决方案是@dutzu的建议。

string temp = cboTypeOfMaterial.Text;