1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007
-
17 nov. 2005 à 22:17
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
18 nov. 2005 à 21:55
Bonjour,
j'aimerais passer une propriété d'un controle par une chaine concaténée ex:label.hide deviendrais chaine concaténée.hide, mais ca ne marche pas. voici le code.
Ranzoo
Messages postés6Date d'inscriptionsamedi 11 janvier 2003StatutMembreDernière intervention17 novembre 2005 17 nov. 2005 à 22:34
concat.hide()? tu voulais le faire disparaitre? seul les onjest ayant un évenement hide peuvent l'appeler. Et ton concat ressemble plus à une variable de type string. Tu devrais lui affecter un type : Dim Concact as String
Et les labels n'ont pas de propriété text mais caption.
essaie avec Label2.caption = concact
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 18 nov. 2005 à 09:28
Il faut passer par la collection Controls ...
Dim Ctrl as Control
Dim i, j As Integer
Dim concat as String
For i = 1 To 40
For j = 1 To 6
concat = "triangle" & i & "_" & j
For each Ctrl in Me.Controls
If Ctrl.Name = concat then
Label2.Caption = concat ' Inutile à mon avis car si plusieurs ctrl, ca ira trop vite on ne verra rien s'affiché dans label2, sauf le nom du dernier controle
Ctrl.hide
end if
Next
Next
Next
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007 18 nov. 2005 à 17:03
Merci de votre réponse, mais je met ce code dans un form_load et ne reconnait pas le Ctrl.hide ou Ctrl.visible=true pour chaque picturebox conté dans les boucles. avez-vous la solution, merci.
Pascal
Vous n’avez pas trouvé la réponse que vous recherchez ?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 18 nov. 2005 à 17:21
Il est impossible de faire ce genre de manip dans un Form_Load effectivement ! Ds le Form_Load les controles sont en cours de chargement et certaines de leurs propriétés sont inaccessibles !
Il suffira de coller cela dans le Form_Activate(), plutot que dans le Form_Load et ce sera OK, car il se produit juste après le Form_Load(). Par contre, si l'utilisateur ouvre un autre programme puis rebascule (par Alt+Tab par exemple) sur ton appli, Form_Activate() est de nouveau appelé. Si cela pose un pb avec ton code, il suffira de gérer une variable public (déclarée public dans un moduel standard) de type Boolean, que tu mets à True dans le Form_Load et à False à la fin du Form_Activate(). Ensuite, tu n'executes le code que je t'ai donné que si cette variable est True.
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007 18 nov. 2005 à 17:30
en fait, j'ai plusieurs picturebox appellées triangle1_1 jusqu'a triangle40_6 et veut à la plce d'écrire toute les lignes triangle1_1.hide
compter avec les boucles de 1_1 à 40_6 puis concaténer les chaine en triangle1_1 à triangle40_6.
merci
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007 18 nov. 2005 à 17:53
ca marche, mais le ctrl ne reconnait pas mes picturebox
For i = 1 To 40
For j = 1 To 6
concat = "triangle" & i & "_" & j
For each Ctrl in Me.Controls
If Ctrl.Name = concat then
Label2.Caption = concat
Ctrl.hide ' j'aimerais que le hide efface les picturebox de triangle1_1 à triangle40_6
end if
Next
Next
Next
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007 18 nov. 2005 à 18:41
non, ca ne marche pas, la condition n'est pas remplie, car le Label n'est pas remplit avec le dernier nom de triangle40_6.
j'ai l'impression que ctrl ne reconnait pas la chaine concatenée?
merci