ComboBox项目的隐藏ID?

时间:2010-09-21 17:46:28

标签: c# winforms combobox

我知道如何将项目添加到ComboBox,但无论如何都要为每个项目分配唯一的ID?我希望能够知道如果选择了哪个ID与每个项目相关联。谢谢!

1 个答案:

答案 0 :(得分:29)

组合框中的项目可以是任何对象类型,显示的值是ToString()值。

因此,您可以创建一个新类,该类具有用于显示目的的字符串值和隐藏ID。只需覆盖ToString函数即可返回显示字符串。

例如:

public class ComboBoxItem()
{
   string displayValue;
   string hiddenValue;

   //Constructor
   public ComboBoxItem (string d, string h)
   {
        displayValue = d;
        hiddenValue = h;
   }

   //Accessor
   public string HiddenValue
   {
        get
        {
             return hiddenValue;
        }
   }

   //Override ToString method
   public override string ToString()
   {
        return displayValue;
   }
}

然后在你的代码中:

//Add item to ComboBox:
ComboBox.Items.Add(new ComboBoxItem("DisplayValue", "HiddenValue");

//Get hidden value of selected item:
string hValue = ((ComboBoxItem)ComboBox.SelectedItem).HiddenValue;