VB6 - Setfocus et Formes modales

[Résolu]
Signaler
Messages postés
3
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
11 octobre 2008
-
Messages postés
3
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
11 octobre 2008
-
Bonjour,

Voilà : j'ai une appli qui doit afficher une feuille en mode modal à partir de différents endroits. Selon l'endroit d'où l'on clique, je voudrais que ce soit un contrôle différent qui ait le focus quand cette feuille modale s'affiche.
Seulement, lorsque la méthode "SetFocus" est invoquée dans l'évènement Load de la feuille modale, cela provoque une erreur. (normal, SetFocus ne s'applique qu'aux contrôles déjà affichée)
Je peux affecter la valeur 0 à la propriété TabIndex  du controle qui m'intéresse (il aura ainsi le focus à l'affichage), mais l'ordre des autres controles n'est plus cohérent pour la navigation par la touche Tab : l'ancien 0 devient le n° 1 alors qu'il faudrait que ce soit celui juste à côté du nouveau 0.
Je devrais donc renuméroter tous les TabIndex des contrôles, mais comment faire dans une boucle (sans nommer les controles un par un), sachant que les controles n'ont pas étés disposé dans l'ordre sur la feuille ? (et qu'il y en a beaucoup, et que ça peut changer)

En résumé, par ex  :
Controls(3).TabIndex 0   ---> devient --->  Controls(3).TabIndex 3Controls(1).TabIndex 1   ---> devient --->  Controls(1).TabIndex 4Controls(9).TabIndex 2   ---> devient --->  Controls(9).TabIndex 0Controls(2).TabIndex 3   ---> devient --->  Controls(2).TabIndex 1Controls(7).TabIndex 4   ---> devient --->  Controls(7).TabIndex 2

Si quelqu'un voit une solution pour ce problème de focus changeant...

Merci d'avance.

2 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
utilise l'EVT Activate plutot que Load de ta form. a cet endroit tous les controles existent
Messages postés
3
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
11 octobre 2008

Merci beaucoup Kristof, c'est la bonne solution.