Chargement dynamique de label ou autres controles [Résolu]

Signaler
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Salut a tous,

Aujourd'hui, une colle, en tout cas pour moi !!!
je cherche a creer dynamiquement des labels a partir du caption d'autres labels... compliquer a expliquer ... exemple :
Label1(0).caption = no_drive
label1(1).caption= USB
label1(2).caption=HD_drive
...

et je voudrais appliquer l'idee suivante :
for i=0 to ...
load label1(i).caption
next i

pour avoir
label1(0).name=no_drive
label1(1).name=USB
label1(2).name=HD_drive

voyez vous ?

Merci

14 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
essaye ce petit exemple avec 2 picturebox

Private Sub Command1_Click()
 Set Picture2.Container = Picture1
 Picture2.Move 0, 0
 Picture2.Visible = True
End Sub
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Bonjour,

Un caption est une chaîne de caractères et on ne peut se référer à un contrôle par la chaîne de caractères correspondant à son nom !

Une seule exception connue : lorsque (mais ce n'est pas le cas) le contrôle existe déjà dans la collection controls
(et alors controls("toto") pour se référer au contrôle nommé toto)
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009

alors comment puis je faire pour renommer un label.name dynamiquement ?
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Tu ne peux pas faire ce que tu souhaites puisque les contrôles faisant partie d'un groupe de contrôle on FORCEMENT TOUS le même nom mais diffèrent par leur propriété index. Ils auront donc tous le nom Label1
Ouu alors je n'ai rien compris a ce que tu désirais faire.
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
La propeiété Name n'est accessible qu'en mode création et ne peut être modifiée au runtime !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Salut Julien,

Il veut créer un contrôle dont le nom serait celui qui figure dans le caption d'un autre contrôle (ici un label) et veut le faire en utilisant la méthode load (qui correspond à la duplication de contrôles déjà exostants) !!!
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009

OK !
bon va encore falloir que je sois genial :p je rigole ....
merci pour ces eclairsissement ! je comprennais pas ou etait mon erreur !
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Re,
salut [auteurdetail.aspx?ID= 615490 jmfmarques] ,
> [auteurdetail.aspx?ID=14659 yannn] : En fait si tu veux créer dynamiquement ton propre label tu peux essayer la fonction suivante.
Mais chaque label seront uniques il ne feront pas parti d'un groupe de contrôle.
Private Sub AddLabel(ByVal LblName As String)
   
   Call Me.Controls.Add("VB.Label", LblName)
   With Me.Controls(LblName)
       .Visible = True
       .Width = 2000
       .Top = 0
       .Left = 50
       .Caption = "Label dynamique"
   End With

End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009

justement julien, derriere il faut que je puisse creer USB1(0), USB1(1),....
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Non mais il y a deux choses à comprendre.
Tu peux très bien créer des USB1(0) USB1(1), tant que tu veux MAIS ils s'appelleront TOUJOURS USB1 tu n'as pas le choix. en revanche si tu veux créer un label en spécifiant le nom il faut utiliser la fonction précédente.

Sinon si tu veux pouvoir faire référence au label par leur "nom" ET utilise run groupe de contrôles, tu peux toujours placer le "nom" dans la propriété Tag de ton objet USB1(X). Tu feras ensuite une recherche pour voir si USB1(X).Tag = no_drive ou USB ou que sais je encore.
Voila en espérant t'éclairer un peu

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009

oui. Mais ca aurait été plus facile pour la suite !!!
Merci de ton aide ... et de votre aide !

Toute autre question :
est il possible  de creer une picturebox dans une autre picturebox :
picture1(0) dans picture2(0)
picture1(1) dans picture2(1)
picture1(2) dans picture2(2)
...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
oui, en utilisant la propriété container
Messages postés
130
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
5 janvier 2009

merci pout tout ca !
les pictures box marchent impec !
CU
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
et maintenant une source de premier choix pour aider à la création dynamique à partir d'un control(0)

++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp