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属性,
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属性,
先定义一个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;
dict.Add("01","男");
dict.Add("02","女");根据value获取key:
string key = dict.Keys[dict.IndexOfValue("男")];
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;
}
}
采用hzzasdf的办法解决了我的难道,其它2位的想法也是颇有受益。再次感谢。说明:
hzzasdf的方法,我这里有点不行。我用的C#2010版本,改成下面的才完成这个功能
string s = "";
s = comboBox1.Text;
s = (string)(dict.GetKey(dict.IndexOfValue(s)));//一定要这么转。。
listBox1.Items.Add(s);