L'auto-complétion dans une application .Net

Dans ce tutoriel, nous allons présenter la fonctionnalité d'auto-complétion et expliquer son implémentation au sein de vos applications .Net.

N'hésitez pas à commenter cet article ! Commentez Donner une note à l'article (5)

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1. Présentation

Dans cette première partie, nous verrons comment fonctionne l'auto-complétion dans une application .Net.

1.1. Principe

L'auto-complétion est un mot étrange qui pourrait être également appelé "aide à la saisie". Sans le savoir, vous l'utilisez régulièrement dans vos applications de tous les jours, que ce soit votre client mail, votre navigateur Web ou même votre moteur de recherche habituel et pourtant, vous ne vous êtes peut-être jamais intérrogé sur son fonctionnement ou son implémentation.

Image non disponible
Client Mail
Image non disponible
Google Suggest

1.2. Types d'auto-complétion

L'auto-complétion comme nous l'avons vu consiste à proposer des saisies afin d'aider l'utilisateur dans ses choix, mais elle existe surtout sous différentes formes. Pour montrer ces différentes méthodes, nous prendrons un exemple un control Textbox (mais nous aurions pu aussi prendre une ComboBox).
La méthode de complétion est contrôlée par la propriété AutoCompleteMode et qui prend prendre quatres valeurs possibles:
La valeur None qui désactive l'auto-complétion pour ce contrôle.

Image non disponible



La valeur Append active la complétion qui écrit automatiquement la fin du texte avec la valeur la plus probable. Il est alors possible avec les flèches haut et bas de naviguer parmi les saisies possibles.

Image non disponible



La valeur Suggest active une liste déroulante n'affichant que les éléments corrects (dont le début correspond au texte actuellement saisi dans la TextBox).

Image non disponible



La valeur SuggestAppend qui combine l'effet des valeurs Append et Suggest.

Image non disponible

1.3. Sources d'auto-complétion

L'auto-completion c'est utile mais concrètement, où le contrôle va-t-il chercher ces mots conseillés? Peut-on personnaliser cette liste? Peut-elle être modifiée au fur et à mesure? Des questions auxquelles je vais tâcher de répondre.
L'auto-complétion se fait à l'aide d'une liste d'éléments que l'on appelle la "source". Cette propriété peut avoir neuf valeurs différentes.
La valeur None permet de désactiver l'auto-complétion. En effet, puisqu'aucune source n'est associée, il est impossible d'afficher des saisies conseillées.

La valeur CustomSource permet comme son nom l'indique de créer soit même la source de données.

Image non disponible


La valeur FileSystem utilise les chemins/noms des fichiers et dossiers pour proposer des saisies.

Image non disponible


La valeur FileSystemDirectories fonctionne comme FileSystem mais n'affiche que les dossiers.

Image non disponible


La valeur HistoryList affichera l'historique des éléments ouverts, que ce soit des fichiers ou des URLs.

Image non disponible


La valeur ListItems (réservée aux ComboBox) permet d'utiliser la collection d'éléments de la combobox en tant que source d'auto-complétion.

La valeur RecentlyUsedList affiche la liste des éléments récemment utilisés. Soit les documents ouverts, soit les commandes taper dans la fenêtre Exécuter.

Image non disponible


La valeur AllSystemSources est la combinaison des propriétés FileSystem et AllUrl.

Image non disponible


La valeur AllUrl est la combinaison des propriétés HistoryList et RecentlyUsedList.

Image non disponible

2. Implémentation

Pour l'implémentation, il n'y a rien de plus simple puisqu'il suffit de glisser-déposer votre contrôle puis dans l'éditeur de propriétés de votre IDE ou via le code, choisir une valeur parmi une énumération bien précise et tout se fait alors tout seul.

Maintenant, il est aussi possible de personnaliser soit même cette source en choisissant la valeur CustomSource pour la propriété AutoCompleteSource. Nous allons prendre comme exemple, le chargement d'un fichier XML intégré à l'application mais ce fichier XML pourrait aussi bien venir d'un WebService ou alors nous pourrions aussi chercher les informations dans une base de données. La "difficulté" consiste à transformer notre XML en une collection utilisable comme source d'auto-complétion, représentée par la classe AutoCompleteStringCollection. Ainsi nous commençons par instancier notre classe.

 
Sélectionnez
AutoCompleteStringCollection collec = new AutoCompleteStringCollection();

Il nous faut dans un second temps récupérer notre fichier XML. Puisqu'il est intégré (embedded) dans notre application, nous devrons utiliser la réflection

 
Sélectionnez
System.IO.Stream file = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("DVPAutocompletion.Resources.logins.xml");

XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(file);

Nous remplissons alors notre collection

 
Sélectionnez
XmlNodeList list = objXmlDoc.GetElementsByTagName("login");
foreach (XmlElement login in list)
{
    collec.Add(login.FirstChild.Value.ToString());
}

Avant de la définir comme source d'auto-complétion de notre TextBox

 
Sélectionnez
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteCustomSource = collec;

Et comme nous pouvons le vérifier, les logins renseignés dans le fichier XML sont alors utilisés pour l'auto-complétion.

Image non disponible

Conclusion

Bien que cette fonctionnalité ne révolutionnera pas vos interfaces graphiques, néanmoins elle améliorera ce qu'on nomme "l'expérience utilisateur" et qui fait que l'interface de votre application est parfaitement désignée pour répondre au mieux aux besoins de l'utilisateur tout en restant le plus simple possible. À l'avenir, lorsque vous aurez une saisie utilisateur, vous pourrez envisager d'aider sa saisie

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2007 Louis-Guillaume MORAND. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.