7

C# WinForms: 次のプロパティを持つ Combobox を使用しました: DropDownStyle: DropDown AutoCompleteSource: ListItems AutoCompleteMode: SuggestAppend

コンボボックスに入力すると、アイテムのリストからアイテムが提案されます.Good. しかし、問題は、私が望むものを何でも入力できるようにしたくないということです。リストにある有効な項目から入力できるようにしたいだけです。この部分を修正するにはどうすればよいですか?

ありがとう。

4

6 に答える 6

6

Itemsリストに値を入力し(手動またはデータバインディングを介して)、DropDownStyleをに設定する必要がありDropDownListます。

Combobox は Textbox のようには見えませんが、フォーカスがある場合に入力すると、Items リストから最適なものが自動的に選択されます。

(これは、カスタム テキストを許可しないようにコンボボックスを設定するための推奨される方法です。)

または、スタイルを DropDown にしたい場合KeyPressは、コントロールのイベントをキャプチャし、コントロールのテキスト plus をすばやくチェックe.KeyCharし、リストに見つからない場合は set を設定しe.Handled = Trueます。これにより、リストにない単語になるすべてのキープレスがブロックされます。

于 2012-05-17T14:29:19.960 に答える
1

これは、これが機能するコンボ ボックス内の文字列と一致します。

int index = combobox1.FindString(combobox1.Text);
  if (index < 0)
  {
  MessageBox.Show("Invalid Record");
  combobox1.Focus();
  return;
  }
于 2016-01-06T13:52:55.553 に答える
1

オート コンプリートとまったく同じではありませんが、DropDownStyle を DropDownList に設定すると、Items コレクション内のエントリのみが許可されます。ただし、このモードのデフォルトの動作では、入力するすべての文字が、その文字で始まる最初の一致にジャンプします。したがって、最初の文字を超えて追加の文字を引き続き入力できるようにする場合は、AutoCompleteSource を ListItems に設定してから、AutoCompleteMode を Append に設定します。

于 2012-05-17T14:34:31.237 に答える
0

TextChangedまたはイベントに登録する他のオプションもありますTextUpdated。すでに入力したテキストが条件に合わない場合は、適切に変更してください。

于 2012-05-17T14:38:19.890 に答える
0

コンボ ボックス コントロールはこれを直接サポートしていません。

リストの項目が入力されたことを確認し、入力されていない場合はユーザーにプロンプ​​トを表示するハンドラーを作成する必要があります。

于 2012-05-17T14:34:25.160 に答える