Onglet dans SSTab ne se sélecttionne pas (Tab = 1)

Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 - 9 nov. 2020 à 17:39
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Derniè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 ?

Merci d'avance

Notpa

8 réponses

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
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
0
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 1
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 ?

Merci !
0
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 1
9 nov. 2020 à 20:09
Autre test : au démarrage de la form principale j'appelle une autre form qui fait juste frm_prim.Onglets.Tabs = 1 puis se termine. Pareil : Tab =0.
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
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.

0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 1
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 ???

That's the question...
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
10 nov. 2020 à 16:27
Mets le en fin de procédure Form_load...
0
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 1
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.
0
Notpa Messages postés 125 Date d'inscription dimanche 13 janvier 2019 Statut Membre Dernière intervention 8 janvier 2021 1
11 nov. 2020 à 20:02
Hello !

Les 2 premières instructions dans le Load sont :

frm_prim.Show
onglets.Tab = 1

Mais c'est toujours l'onglet 0 qui s'affiche.
0
Rejoignez-nous