2017-01-20 2 views
1

мне нужно создать выпадающее автозаполнение, которые отображают textName, но когда я нажимаю на text он получает value «ID» связываясь с «Name». Я уже создал код, но он не работает, и я так запутался с set display text и value в combobox и автозаполнение data-source.с текстом # выпадающего автозаполнением набор отображения и значению

private void loadAutoCompleteValues() 
{ 
    autoCompleteCombo.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
    autoCompleteCombo.AutoCompleteSource = AutoCompleteSource.CustomSource; 

    DataTable products; 
    con.MysqlQuery("select * from products"); 
    products = con.QueryEx(); 
    Dictionary<string, string> comboSource = new Dictionary<string, string>(); 

    for (int i = 0; i < products.Rows.Count; i++) 
    { 
     DataRow dr = products.Rows[i]; 
     comboSource.Add(dr["id"].ToString(), dr["name"].ToString()); 
    } 

    autoCompleteCombo.DataSource = new BindingSource(comboSource, null); 
    autoCompleteCombo.DisplayMember = "Value"; 
    autoCompleteCombo.ValueMember = "Key"; 
} 

private void autoCompleteCombo_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string key = ((KeyValuePair<string, string>)autoCompleteCombo.SelectedItem).Key; 
    string value = ((KeyValuePair<string, string>)autoCompleteCombo.SelectedItem).Value; 

    MessageBox.Show(key + " " + value); 
} 
+0

Что вы имели в виду, не работая? это окно сообщения отображается? –

+0

Нет, поле со списком пуст! – user3722956

+0

Работает! Я забыл 'db con = new db();' но 'auto complete' не работает? – user3722956

ответ

1

Может быть, я неправильно здесь, однако, используя свой код, я просто добавил строку autoCompleateCombo.AutoCompleteSource = AutoCompleteSource.ListItems; в свой код и он работал, как ожидалось.

autoCompleateCombo.DataSource = new BindingSource(comboSource, null); 
    autoCompleateCombo.DisplayMember = "Value"; 
    autoCompleateCombo.ValueMember = "Key"; 
    autoCompleateCombo.AutoCompleteSource = AutoCompleteSource.ListItems; //<-- Added this line 
+0

Wow..grate..и работает. – user3722956

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