2010-11-11 19 views
4

Donc, je lisais un peu sur la saisie semi-automatique des zones de texte dans VB.NET, mais je ne peux pas vraiment comprendre où ils sont stockés? Est-ce une fonctionnalité entièrement intégrée, ou dois-je écrire du code pour que cela fonctionne? J'ai trouvé les propriétés AutoCompleteMode et AutoCompleteSource des zones de texte. Mais je veux ajouter tout ce que j'ai écrit dans la zone de texte à la source de saisie semi-automatique. Est-ce que je connecte la source à My.Settings ou quelque chose? Ne devrais-je pas utiliser un tableau aussi? Toute aide serait la bienvenue :)Vb.net + AutoComplete dans les zones de texte

+0

peuplant le AutoCompleteCustom Source d'une zone de texte, l'ajout et la suppression des entrées: [Voir cet article] (http://www.codeproject.com/Articles/243368/AutoComplete-Textbox) – AvS

Répondre

5

Vous auriez à ajouter manuellement de nouvelles entrées à votre source de données auto-complétées ... ce qui est logique, quand vous y pensez: Comment Windows Forms est censé savoir quand une nouvelle entrée devrait être ajouté à la liste des suggestions et quand le texte entré est seulement quelque chose de temporaire?

Vous pouvez ajouter de nouvelles valeurs, par ex. lorsque la validation du champ de saisie se produit, ou lorsque l'utilisateur appuie sur un bouton OK/Appliquer, ou ce qui correspond le mieux à votre besoin. Mais vous devrez le faire vous-même.

Les propriétés que vous avez déjà découvert sont les bonnes. Vous pouvez lier AutoCompleteSource à presque tout; ceci est très similaire à la liaison de données. Une chose à garder à l'esprit est que si vous ajoutez de nouvelles entrées à la source de données auto-complète, le contrôle de l'interface utilisateur peut ne pas remarquer immédiatement si votre source de données n'implémente pas l'interface INotifyCollectionChanged. Commencez par créer la liste à utiliser comme source personnalisée.

+0

Ok, alors où est cette information stockée? Puis-je le stocker dans My.Settings? –

+0

@Kenny. Oui. Vous pouvez le stocker n'importe où qui vous convient. –

+0

Je n'arrive pas à comprendre la syntaxe. Réduire les suggestions Comme New List (Of String) = {"Abba", "Nirvana", "Rolling Stones"} ne vole pas bien. J'obtiens une "Fin de déclaration attendue" –

1

Dim MySource As New AutoCompleteStringCollection() 

puis définissez la propriété de la zone de texte

With MyTextbox 
    .AutoCompleteCustomSource = MySource 
    .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
    .AutoCompleteSource = AutoCompleteSource.CustomSource 
End With 

mis ce code dans EventListener que vous utilisez pour valider le champ de saisie, par exemple btnOK.Click

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click 
    MySource.Add(txtinput.text) 
End Sub