Maison > développement back-end > C++ > Comment puis-je créer une fonctionnalité de saisie semi-automatique personnalisée dans les zones de texte C# prenant en charge la correspondance sans préfixe ?

Comment puis-je créer une fonctionnalité de saisie semi-automatique personnalisée dans les zones de texte C# prenant en charge la correspondance sans préfixe ?

Barbara Streisand
Libérer: 2025-01-02 18:28:38
original
858 Les gens l'ont consulté

How Can I Create a Custom AutoComplete Feature in C# TextBoxes that Supports Non-Prefix Matching?

Saisie semi-automatique personnalisée pour les zones de texte C#

Lors de l'implémentation de la fonctionnalité de saisie semi-automatique dans les zones de texte C#, il est souvent souhaitable de permettre aux utilisateurs de compléter les entrées quel que soit l'ordre. dans lequel ils tapent. Par exemple, si une entrée existe au format « [001] Nom, Premier Milieu », elle doit apparaître dans les résultats de saisie semi-automatique lorsque l'utilisateur tape « John » pour le prénom.

Limitations par défaut AutoComplete

La fonctionnalité de saisie semi-automatique par défaut en C# prend uniquement en charge la correspondance de préfixe. Cela signifie que les utilisateurs doivent saisir le début de l'entrée pour déclencher la saisie semi-automatique.

Remplacer la saisie semi-automatique par une gestion personnalisée des événements

Pour surmonter cette limitation, vous pouvez implémenter une saisie semi-automatique personnalisée. fonction en remplaçant l’événement OnTextChanged. Cela vous permet de gérer la saisie de texte et d'afficher dynamiquement les résultats de saisie semi-automatique pertinents.

Exemple d'implémentation

L'exemple suivant montre comment créer une fonction de saisie semi-automatique rudimentaire à l'aide d'une ListBox :

  1. Créez une ListBox et définissez sa visibilité sur false par défaut.
  2. Utilisez l'événement OnTextChanged de TextBox pour surveiller la saisie de l'utilisateur.
  3. Dans le gestionnaire d'événements OnTextChanged, parcourez la source de saisie semi-automatique et ajoutez les éléments correspondants à ListBox.
  4. Définissez la visibilité de ListBox sur true pour afficher les résultats de la saisie semi-automatique.
  5. Utilisez l'événement SelectedIndexChanged de ListBox pour sélectionner un élément et remplir le champ TextBox avec le texte sélectionné.

Fonction personnalisée

Voici un exemple de la façon d'implémenter la fonction de saisie semi-automatique personnalisée décrite ci-dessus :

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;
        }
    }
}
Copier après la connexion

Améliorations

Cette implémentation de base peut être améliorée en ajoutant des fonctionnalités telles que l'ajout de texte dans TextBox, capturant des commandes clavier supplémentaires et implémentant un filtrage basé sur des critères plus complexes.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal