Bonjour,
Dans un formulaire comportant plusieurs text-box,
pour une des text-box, je souhaite :
--> gérer de l'auto-completion
--> maitriser le positionnement du curseur.
Pour cela : la textbox comporte les options suivantes :
- autocompletionmode = SuggestAppend
- autocompletionsource = CustumSource
Lors de la saisie du 1er caractère sur la text-box, selon son contenu, j'alimente l'autocompletion comme suit :
- j'intercepte l'évèvement "TextChanged" et prend la main à chaque caractère saisi.
- Sur le 1er caractère saisie, j'alimente l'autocompletion
Dim W_Source As AutoCompleteStringCollection = New AutoCompleteStringCollection()
...
Me.T_SaisieElement.AutoCompleteCustomSource = W_Source
Cela ca marche.
Une fois le contenu de la texte-box traité, je réinitialise le champ et repositionne le curseur dessus. Pour cela :
- je vide l'autocompletion :
Me.T_SaisieElement.AutoCompleteCustomSource.Clear()
- je repositionne le curseur (et la... ca se corse).
Me.T_SaisieElement.Select()
Me.T_SaisieElement.DeselectAll() (car je ne veux pas noirsir mon champ).
Me.T_SaisieElement.Text = ""
J'ai tenté plusieurs combinaisons pour positionner mon curseur, mais je ne suis pas arrivé à être satisfait.
Les effets du positionnement du curseur sont différents selon que je soit en mode debug ou non.
--> en mode debug : mon curseur est correctement positionné, et lorsque je saisi mon 1er caractère, il n'est pas noirci.
--> en excecutant l'exé : mon curseur est correctement positionné, mais (de manière curieusement aléatoire) mon 1er caractère peut être noirci (mon 2em caractère efface donc le 1er).
Comment puis-je "déselectionner" la textbox ? (c'est à dire, ne pas noircir le 1er caractère saisi ?
Merci de votre aide.
Christophe
Partager