2012-03-03 9 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

あなたが現在選択されている項目と値を検索する場合:

dictionary["key3"]; 

comboBox1.SelectedValueとテキスト

を使用すると、元のソースを列挙したい場合は、通常、あなただけのオリジナルのソースを列挙します

何らかの理由でアクセスできない場合は、コンボボックスから戻ってください。

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

ありがとうu。私はそれがうまくいくだろうと思うが、私は表示値を見つけるのは奇妙だが、キーは見つけられない。 – blue

+0

comboBox1.SelectedValueは、ユーザーが選択した1つの項目を探している場合は、「キー」を取得します。 –

関連する問題