jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014
-
18 juin 2009 à 20:44
cs_Joh76
Messages postés47Date d'inscriptiondimanche 16 mars 2008StatutMembreDernière intervention14 octobre 2009
-
21 juin 2009 à 20:13
Bonsoir,
J'ai une application avec plusieurs form
Dans une form, j'ai plusieurs frame.
Et je voudrais provoquer un setfocus direct
sur l'un ou l'autre contrôle d'une autre frame.
J'ai déjà utilisé la propriété TabIndex
(sensé prendre la séquence des contrôles).
Mais c'est alors qu'il faut cliquer 2 fois
sur le nouveau contrôle :
on dirait que le 1e click
correspond à l'abandon du l'ancien contrôle ;
et que le 2e click sert
à prendre le focus sur le contrôle réellement désiré.
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014 20 juin 2009 à 08:17
Peux-tu m'expliquer alors comment faire passer de zone en zone
avec la touche "tab"... Si je ne me trompe pas, il n'y a pas d'autre moyen que d'utiliser tabindex...
cs_Joh76
Messages postés47Date d'inscriptiondimanche 16 mars 2008StatutMembreDernière intervention14 octobre 20093 20 juin 2009 à 12:50
As-tu paramétré l'ordre de tabulation?
Pour cela:
Dans le VBE sélectionne ton premier "Frame" puis clique droit dessus. Clique enfin sur Ordre de tabulation.
Fait monter et descendre les controles selon l'ordre dans lequel tu veux passer de l'un à l'autre (le 1er tout en haut, en dessous le 2ème,ect... Les étiquettes ne comptent pas comme l'utilisateur ne peut pas écrire directement dessus.)
Fait le pour chaque frame.
Enfin pour terminer, tu sélectionnes le formulaire et tu fais pareil sauf que là tu devrais voir dans la liste de controles les frames. Place les dans l'ordre que tu veux.
cs_Joh76
Messages postés47Date d'inscriptiondimanche 16 mars 2008StatutMembreDernière intervention14 octobre 20093 21 juin 2009 à 01:38
Excuse-moi j'étais partis sous vba...
Effectivement sous visual il faut utiliser la propriété TabIndex.
J'ai testé, j'ai définis les tabindex dans l'ordre que j'ai voulu est cela à fonctionné. Je n'ai pas eu à cliquer 2 fois, la touche Tab a suffit.
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014 21 juin 2009 à 11:45
Oui mais comment faire quand les contrôles sont dans des frames différentes ?
Faut-il mettre les tabindex d'abord de frame en frame et puis de contrôle à contrôle ?
Vu que de contrôle à contrôle (toutes frames confondues), cela ne marche pas !
cs_Joh76
Messages postés47Date d'inscriptiondimanche 16 mars 2008StatutMembreDernière intervention14 octobre 20093 21 juin 2009 à 20:13
Cela ne change rien si les frames sont sur le même formulaire, VB donne le focus du TabIndex le plus petit au plus grand.
Les frames et les labels ont un TabIndex mais comme l'utilisateur ne peut pas les modifiers directement vb l'incrémente jusqu'à trouver un textbox ou un autre controle modifiable pour lui donner le focus lors de l'appuie sur la touche tabulation.
Si tu n'as pas le déplacement que tu veux il faut revoir les valeurs que tu as saisie.
C'est simple si en appuyant sur TAB tu te déplaces sur le controle que tu ne veux pas c'est parceque la valeur de son tabindex est plus petit que celui du controle que tu voudrais sélectionner