-1

データベース テーブルの項目が取り込まれたコンボ ボックスがあります。テキストを変更すると、コンボボックスにデータベース テーブルの項目が再入力されます。

しかし、テキストを入力して提案付きのリストを開くと、リスト内の項目が選択されていません。そして、アイテムを選択して、Enterキーを押すと、それが選択されたアイテムになるようにしたいです。

これは winforms アプリケーションです。

ありがとう。

 cbxNaam.Items.Clear();
 string query = "SELECT bedr_naam FROM tblbedrijf WHERE bedr_naam LIKE '%" + cbxNaam.Text + "%'";
 string[] bedrijfsnamen = Functions.DataTableToArray(Global.db.Select(query));
 cbxNaam.Items.AddRange(bedrijfsnamen);
 cbxNaam.Select(cbxNaam.Text.Length + 1, 0);
4

3 に答える 3

1

リスト内のアイテムを選択する必要があります - アイテム内のテキストを選択しようとしているようです。

他のコメントからの情報をつなぎ合わせると、基本的にドロップダウンリストのテキストでワイルドカード一致を実行したいようです。これを行うには、テキスト変更イベント/メソッドのハンドラーの動作を変更する必要があります。コンボボックスを作成してオーバーライドするか、インスタンスにイベント リスナーを追加します。

その後、配列内のデータを検索できます-次のようなものです

private void cbxNaam_TextChanged(object sender, EventArgs e)
{
     var matchingStrings = bedrijfsnamen.Where(s => s.Contains(cbxNaam.Text));
     cbxNaam.SelectedItem = matchingStrings[0];
}

複数の一致するアイテムなどには少し注意する必要があります。

于 2012-08-29T09:36:18.250 に答える
0

私はあなたをよく理解しているかどうかわかりません、そうでなければごめんなさい!これが私の答えです:

コンボボックスに書き込むときにコンボボックスにデータを入力する場合は、そのプロパティを設定する必要があります。

AutoCompleteModeを追加 し、AutoCompleteSourceをListItemsに追加します

入力すると、アイテムが選択されます。

私があなたを助けてくれたらいいのに?ロックオン!!!:-)

于 2012-08-29T09:39:38.060 に答える
0

WINFORMSを使用している場合は、

AutoCompleteModeをに設定し、AutoCompleteSourceをに設定して使用する必要がありますAutoCompleteMode.AppendAutoCompleteSource.ListItems

この回答を確認してくださいComboBoxオートコンプリートカスタム機能

于 2012-08-29T09:33:45.353 に答える