私が表示text
Name
コンボボックスのオートコンプリートを作成する必要がありますが、私はtext
をクリックしたときには、「名前」との結合value
「ID
」を取得します。私は既にコードを作成しましたが、それは動作しません。私はset display text
とvalue
とコンボボックスとオートコンプリートdata-source
バインディングに混乱しています。C#のコンボボックスオートコンプリートセット表示テキストと値
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