Surmonter les limitations de recherche par préfixe uniquement dans la saisie semi-automatique C# avec une logique personnalisée
Malgré les limitations de la fonctionnalité de saisie semi-automatique C# intégrée, c'est possible pour implémenter une solution de saisie semi-automatique personnalisée qui vous permet de rechercher des résultats en fonction de n'importe quelle partie de la chaîne. Ceci est particulièrement utile lorsque des informations incomplètes ou partielles sont fournies en entrée.
Techniques de saisie semi-automatique personnalisées
La fonctionnalité de saisie semi-automatique standard en C# fonctionne uniquement en mode de recherche de préfixe, ce qui signifie qu'elle ne peut trouver que les correspondances qui commencent par le texte saisi. Pour surmonter ce problème, vous pouvez implémenter votre propre logique de saisie semi-automatique en remplaçant des événements tels que OnTextChanged.
Exemple d'implémentation
Un moyen efficace d'implémenter la saisie semi-automatique personnalisée consiste à utiliser une ListBox. pour afficher les correspondances potentielles. Voici un extrait de code révisé :
// 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; }
Améliorations
La solution de saisie semi-automatique personnalisée fournie dans l'exemple peut être encore améliorée en ajoutant des fonctionnalités supplémentaires, telles que :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!