Überwindung von Sucheinschränkungen, die nur auf Präfixe in der C#-Autovervollständigung basieren, mit benutzerdefinierter Logik
Trotz der Einschränkungen der integrierten C#-Autovervollständigungsfunktion ist dies möglich um eine benutzerdefinierte Autovervollständigungslösung zu implementieren, die es Ihnen ermöglicht, basierend auf einem beliebigen Teil der Zeichenfolge nach Ergebnissen zu suchen. Dies ist besonders nützlich, wenn unvollständige oder unvollständige Informationen als Eingabe bereitgestellt werden.
Benutzerdefinierte Autovervollständigungstechniken
Die standardmäßige Autovervollständigungsfunktion in C# funktioniert nur im Präfixsuchmodus, d. h kann nur Übereinstimmungen finden, die mit dem eingegebenen Text beginnen. Um dies zu umgehen, können Sie Ihre eigene Autovervollständigungslogik implementieren, indem Sie Ereignisse wie OnTextChanged überschreiben.
Beispielimplementierung
Eine effektive Möglichkeit, benutzerdefinierte Autovervollständigung zu implementieren, ist die Verwendung einer ListBox um potenzielle Übereinstimmungen anzuzeigen. Hier ist ein überarbeiteter Codeausschnitt:
// 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; }
Verbesserungen
Die im Beispiel bereitgestellte benutzerdefinierte Autovervollständigungslösung kann durch Hinzufügen weiterer Funktionen weiter verbessert werden, wie zum Beispiel:
Das obige ist der detaillierte Inhalt vonWie kann ich in C# eine automatische Vervollständigung der Suche nach vollständigen Zeichenfolgen implementieren, die über den Nur-Präfix-Abgleich hinausgeht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!