Bibliothèque ou extrait de code pour saisie semi-automatique dans le contrôle de texte en fonction des valeurs entrées par l'utilisateur précédent


0

Je recherche une bibliothèque pour la prise en charge de la saisie semi-automatique dans les contrôles texte qui mémorise toutes les entrées précédentes de l'utilisateur et lui fournit une prise en charge automatique.

Par exemple pour les "fichiers récents" j'utilise http://www.genghisgroup.com/ et cela fonctionne très bien. Connaissez-vous quelque chose comme ça dans ce but?

MISE À JOUR: Il s'agit d'une application .NET Winforms et j'utilise le contrôle de texte normal.

  0

Du lien cela ressemble à WinForms? 22 févr.. 092009-02-22 14:30:15

  0

ouais, mis à jour la question aussi. 22 févr.. 092009-02-22 14:45:14

1

Construit dans un .NET TextBox est la fonctionnalité de saisie semi-automatique. Vous devez d'abord définir la propriété AutoCompleteMode (Suggérer, Ajouter, etc.), puis vous choisissez l'AutoCompleteSource. Vos choix pour qui:

FileSystem HistoryList RecentlyUsedList AllUrl AllSystemSources FileSystemDirectories CustomSource Aucun ListItems

Dans votre cas, vous utilisez CustomSource, puis remplir la collection AutoCompleteCustomSource qui est une propriété sur le TextBox. Je suggère d'avoir une base de données SqlCe simple, à l'endroit où vous pouvez stocker les valeurs que l'utilisateur a entré dans le passé, puis, lorsque l'application se charge, récupérer ces valeurs et remplir la AutoCompleteCustomSource.

Un code rapide exemple:

private void button1_Click(object sender, EventArgs e) 
{ 
    this.textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; 
    this.textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; 

    string[] items = GetListForCustomSource(); 
    this.textBox1.AutoCompleteCustomSource.AddRange(items); 

} 

private string[] GetListForCustomSource() 
{ 
    var result = new List<string>(); 

    foreach(var value in Enum.GetNames(typeof(DayOfWeek))) 
    { 
     result.Add(value); 
    } 

    return result.ToArray(); 
} 

Je jsut utilisé DayOfWeek comme exemple, mais vous pouvez interroger une base de données dans cette méthode, et renvoyer les résultats.

  0

Je vais essayer. Qu'en est-il de les stocker dans "Paramètres de l'application"? Cela devrait être le cas pour les 20 dernières entrées. 22 févr.. 092009-02-22 17:07:00

  0

Oh, si vous voulez seulement stocker 20 ou plus, alors oui, vous n'avez pas besoin d'une base de données complète pour cela. Paramètres de l'application, ou juste un fichier XML régulier fera très bien. 22 févr.. 092009-02-22 18:48:19


0

Téléchargez le code source et regardez les fichiers récents. Il ne fait aucun doute qu'il stocke dans une certaine forme de magasin persistant (base de données, fichier, etc) et utilise cette information pour remplir la liste. Vous juste dupe la fonctionnalité et le faites pour un TextBox qui est axé sur les mots au lieu de fichiers.

Je n'ai pas regardé la source de Gengis, mais je suis sûr qu'il est assez facile de passer à travers le contrôle que vous utilisez qui a des fonctionnalités similaires et dupe. Lorsque vous faites cela, contactez le groupe Genghis et offrez-le comme soumission. C'est ainsi que nous soutenons l'open source.