2012-03-03 49 views
0

我有一個組合框,它有一個字典作爲數據源。我正試圖在組合框中查找一個鍵並獲取它的顯示值。 FindString查找顯示值。如何使用組合框中的鍵值查找顯示值

var dictionary = new Dictionary<string, string>(); 
dictionary.Add("key1", "value1"); 
dictionary.Add("key2", "value2"); 
dictionary.Add("key3", "value3"); 
comboBox1.DataSource = new BindingSource(dictionary, null); 
comboBox1.ValueMember = "Key"; 
comboBox1.DisplayMember = "Value"; 
comboBox1.FindString("key3") //returns -1 
comboBox1.FindString("value3") //returns 2 

但我想查找key3的顯示值。我怎樣才能做到這一點?

回答

0

如果你想找到當前選定的項目和值:
comboBox1.SelectedValue和文本

如果你想通過原始來源列舉,通常你只需枚舉的原始來源:

dictionary["key3"]; 

如果因爲某些原因無法訪問它,只需從組合框中取回即可:

var originalDictionary = ((Dictionary<string,string>)((BindingSource)comboBox1.DataSource).DataSource); 
var randomValue = originalDictionary["key3"]; 
+0

謝謝喲ü。我想這可以工作,但我覺得很奇怪找到顯示值,但不是關鍵。 – blue 2012-03-04 06:05:36

+0

如果您正在查找用戶選擇的一個項目,comboBox1.SelectedValue會爲您提供'鑰匙'。 – 2012-03-04 06:54:37