Vb.net groupbox

Résolu/Fermé
Partouchefrancis Messages postés 88 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 29 novembre 2023 - 3 janv. 2023 à 16:30
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 - 7 janv. 2023 à 19:27

Bonjour,

j'ai un petit pc avec une un group box et 6 boutons qui ont été mis sans le group box donc normalement le bouton 1 a l'indice 6 dans  le group box et le 6 l'indice 0 si j'ai bien compris le fonctionnement 

si je tape ce code 

 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        

        For i = 0 To 5


            GroupBox1.Controls(i).Visible = False
        Next i

        GroupBox1.Controls(5).Visible = True
        

    End Sub

normalement c'est le bouton 2 d'indice 5 dans la group box qui devrait s'afficher 

mais c'est le bouton 3 qui s'affiche

quelqun peut il m'expliquer

a l'avance merci
Windows / Chrome 108.0.0.0

8 réponses

Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
3 janv. 2023 à 16:52

Bonjour 

bouton 1 a l'indice 6 dans  le group box et le 6 l'indice 0

non, le premier bouton qui a été créé à l'indice 0, le second a l'indice 1, etc...


0
Partouchefrancis
3 janv. 2023 à 17:39

Merci de ta reponse 

mais dan s les sites d’apprentissage de vbnet il est dit que les controls faisant partie d’une groupe box c’est le dernier integre qui a l’indice 0 pour la gbox

de plus quand je lui demande d’afficher le controle d’indice5, selons tes regles il devrait m’afficher le bouton 4

peux tu m’expliquer pourquoi il m’affiche le 3

a l’avance merci

cordialement

0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
3 janv. 2023 à 17:59

mais dan s les sites d’apprentissage de vbnet il est dit que les controls faisant partie d’une groupe box 

Je n'ai pas de quoi vérifier ça sous la main, mais ça m'étonne.


Pour être sûr, tu codes en winform ?

Tu as déposé les boutons avec le mode design?

Dans l'ordre où ils sont nommés ?

Il n'y a pas eu de suppression, ou de bouton glissé en dehors puis mis dans le groupbox?


0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
Modifié le 3 janv. 2023 à 18:01

Ha suis je bête, tu as posté une méthode Form_Load, c'est donc bien en winform.

Il faudra que je teste, y'a très longtemps que je ne code plus en winform...

Par contre, mes autres questions restent d'actualité.

0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
5 janv. 2023 à 15:50

Après vérification, c'est effectivement dans l'ordre inverse dépôt dans le groupbox.

  1. je crée 3 boutons successivement directement dans le groupbox. Si j'affecte un texte à l'item 0 des la collection d'objets du groupbox, c'est bien le bouton 3 qui change de texte
  2. je sors les boutons du groupbox, puis les remets dans l'ordre 3 puis 2 puis 1, là c'est le bouton 1 qui change de nom.

Comme tu le vois l'index de la collection n'est pas une valeur sûre, d'autant que si tu ajoutes d'autres types de contrôle tu pourrais être embêté.

Si tu décris ton besoin (et pas la solution que tu pensais utiliser), on pourra certainement te trouver quelque chose de rigoureux 


0

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

Posez votre question
Partouchefrancis Messages postés 88 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 29 novembre 2023
7 janv. 2023 à 16:05

En fait voilà le petit exercice que j’ai à faire:

Ce que je veux c’est que en fonction du nombre qu’on saisit dans input box par exemble 3*6  ilaffiche 18 boutons d’animaux mais pas toujour les mêmes

je n’ai pas réussi

a l’avance merci

cordialement 

FP

0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
7 janv. 2023 à 17:33

Ben déjà, pour moi "placé dynamiquement", ça ne veut pas dire placés à l'avance et rendus visibles.

Pour moi, avec 2 boucles imbriquées, tu dois instancier n boutons, les placer, afficher le texte et abonner leur événement Click à une méthode qui mettra le texte en majuscule dans le textbox.


0
Partouchefrancis Messages postés 88 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 29 novembre 2023
7 janv. 2023 à 19:16

merci pour ta réponse 

tu vas faire une boucle avec i qui prendra valeur de 0 à n le nombre qu'il aura choisi et dans la boucle tu lui dis de rendre le bouton visible(car à la load de la form on les mets tous en invisibles)

pourquoi une deuxième boucle?

De plus si le gars clique 6 il t'affichera toujours les 6 premiers j'ai essayé de faire un randomize pour les choisir au hasard  à chaque fois mais n'ai pas réussi à coupler les chiffres au hazar par randomize et le i d'indice du bouton dans le group

cordialement

0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
7 janv. 2023 à 19:25

C'est écrit "placés dynamiquement", pas "rendus visibles".

Donc créés de A à Z et mis sur le formulaire en live.


0
Whismeril Messages postés 18963 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 3 mars 2024 921
7 janv. 2023 à 19:27

D'ailleurs, ce qui va dans ce sens aussi, c'est que le texte des boutons n'est pas écrit en mode design, mais il est extrait d'un fichier.

0