C# 文字方塊的自訂自動完成
在C# 文字方塊中實現自動完成功能時,通常希望允許使用者完成條目,無論順序如何他們在其中打字。例如,如果存在格式為「[001] Last, First Middle」的條目,則當使用者鍵入「John」作為名字時,它應該出現在自動完成結果中。
預設值的限制自動完成
C# 中預設的自動完成功能僅支援前綴匹配。這意味著使用者必須鍵入條目的開頭才能觸發自動完成。
使用自訂事件處理覆蓋自動完成
要克服此限制,您可以實現自訂自動完成透過重寫 OnTextChanged 事件來實現該功能。這允許您處理文字輸入並動態顯示相關的自動完成結果。
範例實作
以下範例示範如何使用ListBox 建立基本自動完成功能:
自訂函數
以下是如何實現自訂自動完成函數的範例描述的上圖:
private 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)) { Console.WriteLine("Found text in: " + s); listBox1.Items.Add(s); listBox1.Visible = true; } } }
增強
可以透過添加功能來增強此基本實現,例如將文字附加到文字方塊、捕獲其他鍵盤命令以及實現基於過濾的功能更複雜的標準。
以上是如何在 C# 文字方塊中建立支援非前綴匹配的自訂自動完成功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!