1.定义一个hashtable:
    Hashtable dict = new Hashtable();2.添加几个数据:
    dict.add("01","男")
    dict.add("02","女")3.将dict 中的数据加载到combox控件中
    IDictionaryEnumerator di = dict.GetEnumerator();
    while (di.MoveNext()) comboBox1.Items.Add(di.Value);                   问题:
    我只能显示这个value,如何获取这个value对应的key值?说明:
    不使用DataSource 和DisplayMember属性,

解决方案 »

  1.   

    这个有点麻烦
    先定义一个key-value类
    例如:public class keyvalue
    {
       public keyvalue(string key,string value){
         this.key=key;
         this.value=value;
       }
       public string key{set;get;}   public string value{set;get;}
    }然后comboBox1.Items.Add(new keyvalue("key","value"));   
    //即
    comboBox1.Items.Add(new keyvalue(di.key,di.value));   
    用的时候要自己转换过来
    keyvalue kv=comboBox1.Items[0] as keyvalue;
      

  2.   

    可改用SortedList:SortedList<string, string> dict = new SortedList<string,string>();
    dict.Add("01","男");
    dict.Add("02","女");根据value获取key:
    string key = dict.Keys[dict.IndexOfValue("男")];
      

  3.   

    comboBox1.Items.Insert(0, new ComboBoxItem("01","男"));
    comboBox1.Items.Insert(1, new ComboBoxItem("02","女"));
    class ComboBoxItem:Object
            {
                private string value;
                private string text;
                public ComboBoxItem(string _value, string _text)
                {
                    value = _value;
                    text = _text;
                }
                public string Text
                {
                    get { return text; }
                }
                public string Value
                {
                    get { return value; }
                }
                public override string ToString()
                {
                    return text;
                }
            }
      

  4.   

    谢谢各位热情相助:
    采用hzzasdf的办法解决了我的难道,其它2位的想法也是颇有受益。再次感谢。说明:
    hzzasdf的方法,我这里有点不行。我用的C#2010版本,改成下面的才完成这个功能
                string s = "";
                s = comboBox1.Text;
                s = (string)(dict.GetKey(dict.IndexOfValue(s)));//一定要这么转。。
                listBox1.Items.Add(s);