[R] InputBox perd son focus
Posté : lun. 04 juil. 2016 14:50
Bonjour,
J'ai une GUI qui contient différents contrôles, dont un TreeView et une InputBox. Cette dernière permet de faire une recherche sur les éléments affichés dans le TreeView.
Lorsque l'utilisateur saisit/modifie le texte de l'InputBoxf, l'objectif est de mettre à jour le TreeView.
Le TreeView n'est pas réellement mis à jour : il est détruit (via GUICtrlDelete) puis reconstruit (GUICtrlCreateTreeView) avec seulement les éléments à afficher (donc déjà filtrés).
HIC : le InputBox perd son focus dans l'affaire
J'ai donc ajouté juste après la commande suivante :
Et là, nouveau hic
Pendant un bref instant, le texte de l'InputBox apparaît entièrement sélectionné. Donc si l'utilisateur effectue une nouvelle entrée clavier (il suffit de rester appuyer sur une touche), alors la nouvelle entrée remplace entièrement le texte au lieu de s'y ajouter. 
Cette méthode n'est donc pas viable...
Pour résoudre mon problème, je pense qu'il y aurait au moins ces deux possibilités, mais que je n'arrive pas à mettre en œuvre :
Si quelqu'un a une solution / une piste, je suis preneur !!!
Merci d'avance
JL
J'ai une GUI qui contient différents contrôles, dont un TreeView et une InputBox. Cette dernière permet de faire une recherche sur les éléments affichés dans le TreeView.
Code : Tout sélectionner
$tv = GUICtrlCreateTreeView(....), $sf = GUICtrlCreateInput(...)Le TreeView n'est pas réellement mis à jour : il est détruit (via GUICtrlDelete) puis reconstruit (GUICtrlCreateTreeView) avec seulement les éléments à afficher (donc déjà filtrés).
HIC : le InputBox perd son focus dans l'affaire
J'ai donc ajouté juste après la commande suivante :
Code : Tout sélectionner
GUICtrlSetData($sf,GUICtrlRead($sf))Cette méthode n'est donc pas viable...
Pour résoudre mon problème, je pense qu'il y aurait au moins ces deux possibilités, mais que je n'arrive pas à mettre en œuvre :
- soit il existe une commande pour empêcher que la commande GUICtrlCreateTreeView fasse perdre le focus à l'InputBox. Il n'y aurait alors plus à lui redonner le focus puisqu'il ne l'aurait pas perdu...
- soit il existe une commande (laquelle ?) pour redonner le focus à l'InputBox mais en évitant que le texte soit sélectionné.
Si quelqu'un a une solution / une piste, je suis preneur !!!
JL