2015-02-25 2 views
1

Я пытаюсь отметить один из выбранных элементов списка.WinForms ComboBox

Так я строй моих выпадающие так:

var drop = new Dictionary<int, string>(); 
while (RegReader.Read()) 
{ 
    drop.Add(Convert.ToInt32(RegReader["intRulesID"]), RegReader["txtName"].ToString()); 
} 

RegRuleDrop.DataSource = new BindingSource(drop, null); 
RegRuleDrop.DisplayMember = "Value"; 
RegRuleDrop.ValueMember = "Key"; 

Теперь, один из пунктов в пределах RegRuleDrop должны быть предварительно выбран на основе значения из считывателя выше этого кода. Теперь проблема в том, что мне нужно выбрать значение на основе фактического значения ListItem VALUE, а не TEXT.

Так как пример

drop.Add(1, "Test"); 
drop.Add(2, "Test2"); 
drop.Add(3, "Test3"); 

Мне нужно найти индекс, используя 1,2 или 3 не Проверь, Test2 или Test3

Любые идеи?

+1

http://stackoverflow.com/questions/10160708/how- к найти-элемент по значению-комбобоксе-в-с-острым. То же самое, что вы пытаетесь сделать, а также http://stackoverflow.com/questions/19786889/set-selected-item-in-combobox-vb-net – maximdumont

+1

Не совсем, все примеры, которые есть в FindMember, когда я необходимо выполнить поиск по ValueMember :( –

+0

Зачем вам нужно искать в первую очередь? Если вы хотите, чтобы 'id = 2' был выбран, просто сохраните индекс последнего элемента в поле после добавления этого элемента в цикле – SimpleVar

ответ

3

Когда у вас есть DataSource установлено в BindingSource единственное действие, которое необходимо, чтобы выбрать элемент заданного значения, относящегося к собственности ValueMember является

drop.Add(1, "Test1"); 
drop.Add(2, "Test2"); 
drop.Add(99, "Test99"); 
drop.Add(3, "Test3"); 
..... 

RegRuleDrop.SelectedValue = 99 
+0

Awesome, не мог получить больше проще :) Спасибо Утвердите ответ за 3 минуты (Ограничение ... :() –

Смежные вопросы