Onglet dans SSTab ne se sélecttionne pas (Tab = 1)
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
9 nov. 2020 à 17:39
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
11 nov. 2020 à 20:02
Bonjour,
Mon problème est très simple à expliquer. J'ai dans une form un contrôle SStab avec 2 onglets. Lorsque je lance le programme, je force l'activation du 2ème onglet : Onglets.Tab = 1.
Mais c'est toujours le premier qui est activé. L'explication en image :
La partie haute est le code, la basse la fenêtre à l'exécution. Comme vous pouvez le voir, je force Tab = 1 et c'est le premier onglet qui reste affiché (Tab = 0).
Comment faire pour que l'onglet activé via Tab = soit le bon ?
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 9 nov. 2020 à 18:10
Bonjour
as tu essayé dans un évènement qui vient après Load.
En VB6, je ne me souviens plus si c'était Shown, Activate ou...
De mémoire, Activate existe mais se déclenche à chaque fois que le formulaire prend le focus.
Il faut donc avoir une variable, par exemple un booléen, que tu testes pour savoir si ça s'active par ce que c'est le démarrage du logiciel ou pas
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 20211 9 nov. 2020 à 20:01
Hello Whishùeril !
J'ai testé ceci :
Private Sub Form_Activate()
onglets.Tab = 1
End Sub
Private Sub Form_GotFocus()
onglets.Tab = 1
End Sub
Private Sub Form_Initialize()
onglets.Tab = 1
End Sub
Pareil. Toujours l'onglet 0 ! Seul l'Initialize est activé.
Je ne comprends pas trop ta suggestion de variable type booléen. Peux-tu développer ?
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 9 nov. 2020 à 21:32
Je peux développer, mais ça ne te servira pas cette fois puisqu'avec les autres évènements ça ne fonctionnent pas.
Dans un de mes projets VB6, j'avais besoin de faire une action (je ne sais plus laquelle) dans un évènement après le load (je ne sais plus lequel non plus)
Mais dans ce langages tous les évènements après le load sont susceptibles d'être déclenchés ultérieurement (par exemple GotFocus, le sera à nouveau si tu changes de fenêtre et que tu y reviens), et cette action ne devait arriver qu'une fois (comme toi)
Donc dans le load je mettais ma variable à true.
Et dans l'autre évènement, si elle valait true je faisais l'action et je la repassais à false.
En .Net, il y a un évènement qui ne se produit qu'une fois, tout à la fin du chargement (Shown p'tet bien) et c'est typiquement là qu'on choisit un onglet, une valeur de combobox etc.... D'où mon idée.
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 Modifié le 11 nov. 2020 à 17:44
Salut Whis
Tu dis : En .Net, il y a un évènement qui ne se produit qu'une fois, tout à la fin du chargement (Shown p'tet bien) et c'est typiquement là qu'on choisit un onglet, une valeur de combobox etc.... D'où mon idée.
C'est exact
Le Form_Load charge la feuille
Le Form_Shown l'affiche sur l' écran
En Vb 6 il y a Form_Show si mes souvenirs sont bons qui est l'équivalent du Form_Shown VB Net
Vous n’avez pas trouvé la réponse que vous recherchez ?
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 20211 10 nov. 2020 à 09:44
Bonjour !
J'ai créé un tout petit projet avec une forme et un sstab qui a 3 onglets. Là, ça marche : si je code au lancement sstab1.tab = 1, j'affiche bien le 2ème onglet. Si tab = 2, j'ai le 3ème alors que 0 me montre le premier. Donc, ça marche.
Dans le projet qui coince, j'ai ajouté un autre SStab : même problème : pas moyen de sélectionner via la code l'onglet. J'ai essayé aussi ceci : j'ai créé une forme qui contient une seule instruction : form1.onglets.tab = 1. Dans le load de form1, j'appelle cette autre forme . Pareil : l'onglet 1 n'est pas sélectionné.
Pourquoi ça marche ailleurs mais pas dans ce projet ???
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 20211 10 nov. 2020 à 17:18
Hello !
Il y est déjà. Pas mieux.
Dans la forme initiale, il y a 2 onglets, avec chacun une grille qui est remplie à partir d'une base Access. Je force l'onglet 1 (le deuxième), remplis la grille, qui s'affiche une fois finie, puis passe à l'onglet 0 (le premier) qui voit sa propre grille se remplir. Là, je sors. Même si Onglets.tab = 0 est codé, il reste sur le 1.
Si en mode développement je sélectionne l'onglet 1, il est bien affiché au load, mais quand la force Tab=0, les onglets restent sur le 1.