在ASP.NET(WEBFORM)里,有个DropDownList,可以像下面这样添里面的选项,非常的方面DropDownList1.Items.Add(new ListItem(标题,值));而在Winfom里,没有对应的ListItem类,ComboBox对应的Add方法传的是一个object类型的值,一般情况下可以传字符串,string类型,但这样用起来有时就感觉很不方便,因为我们不仅有一个显示内容,还有另一个对应的值。这时可以自定义一个类,像下面这样: public class ComboBoxItem
    {
        string m_Title;
        int m_Value;
        /// <summary>
        /// Combox显示的内容
        /// </summary>
        public string Title
        {
            get { return m_Title; }
            set { m_Title = value; }
        }
        /// <summary>
        /// 对应的值
        /// </summary>
        public int Value
        {
            get { return m_Value; }
            set { m_Value = value; }
        }
        /// <summary>
        /// 重写ToString方法,否则ComboX里的显示不正常
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return m_Title;
        }        /// <summary>
        /// 定意构造函数
        /// </summary>
        /// <param name="strTitle"></param>
        /// <param name="value"></param>
        public ComboBoxItem(string strTitle, int value)
        {
            m_Title = strTitle;
            m_Value = value;
        }当然你的Value也可以跟据需要定义成其它的类型,比如object在向ComboBox添加内容时,可以这样:combo1.Items.Add(new ComboBoxItem(标题,值));可以像下面这样,来获取用户所选择的值:((ComboBoxItem)combo1.SelectedItem).Value出自:http://www.soft000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c6e80e4fd000.com/newsInfo.aspx?id=19987a42-584e-4b83-ae08-fb4c

解决方案 »

  1.   

    winform里面的ComboBox有一个DisplayMember和一个ValueMember
    DisplayMember是显示出来的数据
    ValueMember是隐藏的数据比如DisplayMember显示  "编号"  ValueMember值是 1
    当取ComboBox.text的时候是得的数据是 "编号"
    用ComboBox.value得的值就是 1
      

  2.   

    那是数据绑定时的,我是Items.Add的。
      

  3.   

    //引用命名空间System.Collections.Generic
    comboBox1.Items.Add(new KeyValuePair<string, string>("aaa", "1"));
    comboBox1.Items.Add(new KeyValuePair<string, string>("bbb", "2"));
    comboBox1.Items.Add(new KeyValuePair<string, string>("ccc", "3"));comboBox1.DisplayMember = "key";
    comboBox1.ValueMember = "value";//获取值
    MessageBox.Show(((KeyValuePair<string, string>)comboBox1.SelectedItem).Key + "," + ((KeyValuePair<string, string>)comboBox1.SelectedItem).Value);