Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Boucle For Each Avec des index dans certains controls [ Windows / Formulaire et Controls ] (PROTEUS91)

samedi 18 octobre 2008 à 15:00:36 | Boucle For Each Avec des index dans certains controls

PROTEUS91

Bonjour,

Je pose cette question, car je ne vois pas de solution à mon problème. Peut être que l'un d'entre vous pourra m'aider.

Voilà, j'ai une form dans laquelle j'ai plusieurs objet, des boutons, des ListBox, des TextBox, des labels etc...

Ce que je veux faire c'est lister le "Caption" pour tous ces objets donc pour cela je fait :

For Each ObjectCurrency In Me.Controls
     List1.AddItem ObjectCurrency.Name
     List2.AddItem ObjectCurrency.Caption
Next


(Au préallable j'ai testé si l'objet avait bien la propriété de "Caption")

Ca marche niquel mais le problème c'est que quand il rencontre les labels il ne m'en liste qu'un. Les labels sont crée sur ma form avec un Index exemple :

Label2(0)
Label2(1)
Label2(2)
Label2(3)


Je ne sais pas comment faire pour qu'il me liste les captions de tous ces index, je ne sais vraiment pas comment faire si vous avez une idée...

Merci d'avance à vous.

PROTEUS

samedi 18 octobre 2008 à 15:32:51 | Re : Boucle For Each Avec des index dans certains controls

jmfmarques

Membre Club
Bonjour,

Comme tout marche chez moi, je suppose que tu as fait une erreur ailleurs ou que tu as donné le même caption à tous les labels de ce groupe .

samedi 18 octobre 2008 à 15:43:45 | Re : Boucle For Each Avec des index dans certains controls

PROTEUS91

Hello merci d'avoir repondu aussi vite.

For Each ObjectCurrency In Me.Controls
     List1.AddItem ObjectCurrency.Name     'La il appel un item pas un groupe
     List2.AddItem ObjectCurrency.Caption  'Idem ici
Next


Mon probleme c'est que je ne sais pas comment gerer les groupes, si je fais ca :
for I = 0 to ObjectCurrency.ubound         'J'ai deja une erreur ici ou il me dit que l'objet ne gere pas cette propriété
     List1.AddItem ObjectCurrency(i).Name  'Et un autre erreur ici.
     List2.AddItem ObjectCurrency
(i).Caption
Next i

PROTEUS

samedi 18 octobre 2008 à 16:19:25 | Re : Boucle For Each Avec des index dans certains controls

PROTEUS91

En fait il y a meme un deuxieme probleme qui peut etre est issu du premier. En fait une fois que j'ai listé les objets dans la listbox, J'enregistre le contenu de la listbox dans un fichier, et en fait le truc c'est que dans une autre procedure pour des raisons X je recharge ce fichier dans une listbox et il boucle la liste pour modifier le caption de tous les noms d'objet enregistrer dans la listebox.

Probleme c'est que meme si j'arrive a enregistrer dans la Listbox le nom Label2(0) je n'arriverai jamais a le recharger avec cette ligne de code.

ObjectCurrency = ListBox1.text
ObjectCurrency.Caption = "TOTO"

Pour les objets sans index ca marche sans probleme mais quand j'aurai resolu le probleme de l'acquisition des noms d'index (voir le probleme ci dessus) j'aurai encore le probleme de gerer les index pour la modification du caption....

Je sias pas si je suis clair en tout cas je l'espere.

PROTEUS

samedi 18 octobre 2008 à 16:59:05 | Re : Boucle For Each Avec des index dans certains controls

pile_poil

Membre Club
bonjour
la solution serait de ne pas avoir de labels indexés
si tu ne peux pas parce que tu utilise les index ailleurs dans ton code  il faut alors faire une boucle juste sur tes labels pour pouvoir récupérer le .caption de chaque index

si c'est la solution, penser : REPONSE ACCEPTEE

samedi 18 octobre 2008 à 17:51:21 | Re : Boucle For Each Avec des index dans certains controls

jmfmarques

Membre Club
Je répète donc :
1) le code (ton tout premier) est bon tel qu'il est
2) le nom d'un contrôle faisant partie d'un groupe de contrôles indexés est le même pour chaque contrôle du groupe
Ainsi  Label1(2) a pour nom Label1, tout comme Label1(1) ou label1(0) ...
0, 1 et 2 sont des indices dans le groupe et ne font pas partie du nom du contrôle...

samedi 18 octobre 2008 à 17:57:50 | Re : Boucle For Each Avec des index dans certains controls

jmfmarques

Membre Club
Réponse acceptée !
Essaye ceci et tu vas comprendre :

For Each objectcurrency In Me.Controls
  On Error Resume Next
    List1.AddItem objectcurrency.Name & "(" & objectcurrency.Index & ")"
 Next

J'ai mis ici un on error resume next pour ne pas avoir à m'occuper de tes autres contrôles (qui ne figureront pas dans ta liste, donc...)
A toi de gérer comme tu l'entends (par exemple en utilisant TypeOf, ou même le nom des contrôles indexés dans une If ...)
Tu devrais t'en sortir sans problème, pour peu que tu y réfléchisses un peu ...

samedi 18 octobre 2008 à 18:24:01 | Re : Boucle For Each Avec des index dans certains controls

jmfmarques

Membre Club
Réponse acceptée !

Alles, va ...

C'est Samedi, alors ...

Voilà une manière ... essaye :

Private Sub Command1_Click()
  Dim objectcurrency As Control
  For Each objectcurrency In Me.Controls
    If voyons_si_groupe(objectcurrency) Then
      List1.AddItem objectcurrency.Name & "(" & objectcurrency.Index & ")"
    Else
      List1.AddItem objectcurrency.Name
    End If
  Next
End Sub

Private Function voyons_si_groupe(ctrl As Control) As Boolean
  voyons_si_group = False
  On Error GoTo 10
  If ctrl.Index >= 0 Then
    voyons_si_groupe = True
  End If
10:
End Function

 


samedi 18 octobre 2008 à 19:39:00 | Re : Boucle For Each Avec des index dans certains controls

PROTEUS91

Bonjour jmfmarques,

Merci vraiment pour l'aide que tu m'as apportée je pensais être pas loin de la solution sans savoir que ca pouvait etre aussi simple. Je te remerci encore de m'avoir aidé aussi rapidement.

PROTEUS



Cette discussion est classé dans : controls, for, each, index, label2


Répondre à ce message

Sujets en rapport avec ce message

Index dans For Each [ par XGuarden ] BonjourVoici mon code, j'aimerais l'améliorerj'aimerais savoir comment enlever la premiere ligne de MyTextBox j'aimerais égallement savoir comment sav réutiliser un label suivant son nom [ par datesta ] bonjour, pour mon programme je crée à la volé des labels je leur donne des noms le probleme ce qu' apres je voudrais les réutiliser v Complément d'aide pour suppimer des cookies spécifiques [ par Castelroussin ] Bonjour à tous,j'aimerais savoir si l'un d'entre vous pourrez résoudre mon problème.j'essaye de me faire un programme qui supprimerai les cookies plus For Each probleme [ par Babynini ] Bonjour,bon voila, je fais un travail pour l'école. Je tente de faire un For each et ça ne fonctionne pas. Je veux que mon for each prennent tous les optimisation : For ou For Each ? [ par allthew3 ] Bonjour,Cherchant à optimiser mon code, voici ma question :Une boucle For (For i as integer = 0, Next ..) est-elle plus rapide que For Each (For each Xslt: test sur noeuds sans valeurs imbriqué dans boucle for each [ par montinin ] bonjour à tous,J'ai un fichier xml, j'applique une transformation Xslt pour recuperer les valeurs des noeuds. pour cela j'utilise des boucles for-each For each Controle In tableLayoutPanel1 [ par XGuarden ] Bonjour je cherche à faire ceci:         For Each control As Control In tableLayoutPanel1.Controls            if control est dans la colonne 2 then    probleme for each = null ? [ par leSaleGauSS ] Salut à tousj'ai une boucle for each du genre :   for each objDrive in colDrives      'creation networkDrive   nextProbleme : si colDrives est null al For Each ... Next [ par Shark-Man ] Salut à vous. Voici l'une de mes procédure : *** Private Sub < Débutant [VB pour XL] Boucle for each ... next : erreur Next sans For [ par Magicien blanc ] Voilà même si je débute je trouve pas ça normal du tout. Vouci une boucle For Next : (le problème n'est pas savoir si il ya des erreurs, ça il me le d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.