Collection et indices

Résolu
Partouchefrancis Messages postés 93 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 18 avril 2024 - 13 déc. 2022 à 10:57
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 14 déc. 2022 à 18:19

Bonjour en vb.net

je crée une group box et je mets des controles button dedans et apparemment vb leur attribue a chacun un numéro index qui n’est pas le même que le tabindex qui apparait dans les propriétés de chaque bouton 

y a t il possibilité que je détermine moi même l’index de chaque button?

a l’avance merci

8 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 déc. 2022 à 12:38

Bonjour 

qu'est ce que tu appelles un numéro index?


0
Partouchefrancis Messages postés 93 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 18 avril 2024
13 déc. 2022 à 12:58

Excuses moi je voulais dire indice 
l’index c’est tab index 

cordialement

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 déc. 2022 à 13:27

Indice et index c'est la même chose, c'est juste que index c'est le mot anglais.

Ma question est de quoi tu parles? Et si tu parles bien d'un index, lequel?


0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
13 déc. 2022 à 16:55
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 déc. 2022 à 16:59

Je ne crois pas que ce soit ça qu'il cherche, puisqu'il cite justement le tabindex en exemple.

0

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

Posez votre question
Partouchefrancis Messages postés 93 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 18 avril 2024
13 déc. 2022 à 18:06

ma question finalement n'a pas d'intéret
je crée un groupbox et j'y mets dedans trois boutons
si je vais sur propriétés de chaque bouton le premier créé a un tab index 0 et le deuxième a un tabindex1
si à la load de la form je lui dis groupbox1.control(0).visible=true et groupbox1.control(1)=false il m'affiche le deuxième créé qui a pris l'indice 0 dans le group alors que initialement son tabindex était 1
laissons tomber
par contre si je mets 6 boutons et je crée une action où je demande à l'utilisateur de saisir un nombre 4 et je veux qu'il n'affiche que 4 boutons sur 6 je sais faire avec un for i=0 to 3 mais si je ne veux pas qu'il affiche toujours les 4 premiers ,là je n'arrive pas à faire
je pourrais utiliser randomize mais comment lui demander de sortir 4 nombres sur 6 en aléatoire et les mettre dans le i du button que je veux afficher
j'espère que j'ai été clair mais sinon laisser tomber ce n'est pas grave merci
 

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 déc. 2022 à 23:50

OK, il s'agit bien d'un indice, mais pas littéralement celui du bouton.

Et surtout, il n'a strictement rien de commun avec le tabindex, sinon, pourquoi avoir 2 "numéro".

D'abord le tabindex est un attribut du contrôle, l'index non.

Ensuite ils ne servent pas à la même chose.

Prenons par exemple une voiture, avec verrouillage des portes à la télécommande. Le tabindex de cette voiture servirait à ouvrir ou fermer les portes quand la télécommande est activée.

Par contre, si je vais au resto et que je me gare à l'emplacement 38 du 2eme sous-sol du parking. Le numéro 38 se réfère bien à ma voiture, le temps qu'elle y est, mais il "appartient" au 2eme sous-sol, qui lui-même appartient au parking. 

Dans ce cas, le parking, c'est ton formulaire, le 2me sous-sol, c'est ton groupbox et le 38 l'index du bouton dans la collection d'objets du groupebox.


Alors, oui, on pourrait penser que l'ordre chronologique dans lequel tu as déposé tes contrôles sur le groupebox se retrouverait dans les index qui leur sont attribués. Mais quand tu fais quoique ce soit sur le mode design, VS écrit ou modifie un fichier de code "caché" (pas complétement caché, mais suffisamment caché pour éviter que les gens le bidouillent et crashent leur projet). C'est en vérité ce fichier qui est compilé pour créer l'interface graphique.

VS l'écrit selon une logique qui lui est propre (et donc pas la tienne). Ce qui fait que le 10eme contrôle que tu poses peut se retrouver à l'index 0.


Maintenant pour répondre à ton besoin, finalement différent de ta question initiale, tu peux te servir de 2 propriétés des contrôles: Name et Tag.

Soit tu nommes les contrôles suivant ta logique d'utilisation, soit tu leur affectes un numéro dans le Tag et ensuite, tu fais une requête Linq sur la collection du groupebox.

Par exemple, si tu as numéroté les boutons par leur Tag et que tu veux le 2 et le 3

Dim MesBoutons As List(Of Button) = groupBox1.Controls.OfType(Of Button)().Where(Function(b) (CInt(b.Tag)) > 1 AndAlso (CInt(b.Tag)) < 4).ToList()

0
Partouchefrancis Messages postés 93 Date d'inscription mercredi 2 septembre 2020 Statut Membre Dernière intervention 18 avril 2024
14 déc. 2022 à 16:51

su mon pc c'est pareil la touche valider est grisée

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
14 déc. 2022 à 18:19

C'est un bug visuel du design du site, mais il est quand même actif.

D'ailleurs, tu as bien pu poster ton dernier message.


0
Rejoignez-nous