カスタム ロジックを使用した C# オートコンプリートでのプレフィックスのみの検索の制限を克服する
組み込みの C# オートコンプリート機能の制限にもかかわらず、それは可能です文字列の任意の部分に基づいて結果を検索できるカスタム オートコンプリート ソリューションを実装します。これは、不完全または部分的な情報が入力として提供される場合に特に便利です。
カスタム オートコンプリート テクニック
C# の標準のオートコンプリート機能は、プレフィックス検索モードでのみ動作します。は、入力されたテキストで始まる一致のみを検索できます。これを解決するには、OnTextChanged などのイベントをオーバーライドして独自のオートコンプリート ロジックを実装します。
実装例
カスタム オートコンプリートを実装する効果的な方法は、ListBox を使用することです。潜在的な一致を表示します。修正されたコード スニペットは次のとおりです。
// Initialize list box listBox1.Visible = false; listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged; listBox1.LostFocus += listBox1_LostFocus; // Handle text changes in the text box void textBox1_TextChanged(object sender, System.EventArgs e) { listBox1.Items.Clear(); if (textBox1.Text.Length == 0) { hideResults(); return; } foreach (String s in textBox1.AutoCompleteCustomSource) { if (s.Contains(textBox1.Text)) { listBox1.Items.Add(s); listBox1.Visible = true; } } } // Hide the list box on selection void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { textBox1.Text = listBox1.Items[listBox1.SelectedIndex].ToString(); hideResults(); } // Hide the list box when it loses focus void listBox1_LostFocus(object sender, System.EventArgs e) { hideResults(); } // Hide the list box void hideResults() { listBox1.Visible = false; }
拡張機能
例で提供されているカスタム オートコンプリート ソリューションは、次のような機能を追加することでさらに拡張できます。
以上がC# でプレフィックスのみのマッチングを超えた全文字列検索オートコンプリートを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。