мне нужно создать выпадающее автозаполнение, которые отображают text
Name
, но когда я нажимаю на 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);
}
Что вы имели в виду, не работая? это окно сообщения отображается? –
Нет, поле со списком пуст! – user3722956
Работает! Я забыл 'db con = new db();' но 'auto complete' не работает? – user3722956