Bonjour,
Je souhaite modifier le comportement d'une comboBox ( WinForm) pour que les choix possible changent au fur et à mesure des lettres saisie un peu comme le mode suggest.
Seulement voilà il y'a un lézard dans l'affaire, lorsque je tape les lettres trop vite au clavier les lettres s'inverse dans la zone de saisie.
Pour changer dynamiquement le contenu des choix, j'utilise l'event TextChanged.
Voici le contenu de l'event en question
Hors systématiquement la 2ème lettre du mot que je tape après la limite du if, se retrouve en première position.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SendKeys.Send("{End}"); if (box.Text.Length > 2) { box.Items.Clear(); box.Items.AddRange( query(box.Text).Cast<object>().ToArray() ); box.DroppedDown = true; }
Par exemple ici on est censé rentrer dans le if que si le mot fait au moins 3 caractères dans ce cas c'est la 5ème lettre qui se retrouve au début.
Ca fait plusieurs jour que je cherche mais sans résultat vraiment concret.
J'envoie des SendKeys pour faire en sorte que lorsque un mot est sélectionné par la box celui ci ne reste pas sélectionné.
Ce problème ne se pose que lorsque je tape trop vite les caractères si je tape pas trop vite ça passe.
C'est comme s'il y avait un autre thread/event qui modifié la position du curseur.
Si vous avez des pistes de travail à creuser je suis preneur.
Merci.
Partager