Création label dynamique

carribean Messages postés 9 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 20 février 2007 - 26 déc. 2006 à 15:49
carribean Messages postés 9 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 20 février 2007 - 27 déc. 2006 à 17:22
Bonjour,
Je dispose d'une serie de label que je souhaiterais charger dynamiquement en fonction de critère de sélection.
Un exemple simple pour illustrer ...


Si je selectionne "Personne" les labels affichent
Label1 : le nom
Label2 : le prenom
Label3 : l'adresse


Si je selectionne "Société" les labels affichent
Label1 : raison sociale
Label2 : forme juridique
Label3 : l'adresse


Je cherche donc à pouvoir couper en 2 les labels en : label + compteur afin de pouvoir leur affecter les valeurs adéquates lorsque je les passe dans ma boucle.


Auparavant il y avait "controls" mais ça n'est plus disponible sous la forme que je recherche.


Quelqu'un a-t-il une idée?

7 réponses

Utilisateur anonyme
26 déc. 2006 à 16:33
Salut,

Pour boucler sur tes labels :



For i As Integer = 1 To 2
  Dim Ctl As System.Windows.Forms.Control = MyBase.Controls(String.Format("Label{0}", i.ToString()))
  [...]
Next i,

----

(Coloration syntaxique automatique par Kenji)





__________
Kenji
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 déc. 2006 à 16:58
Moui, pas besoin d'appeler ToString quand on fait un String.Format...

<hr size="2" />-Blog-
0
carribean Messages postés 9 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 20 février 2007
26 déc. 2006 à 17:00
C'est exacteemnt ce que j'ai fait seulement, cela pose un problème de cast :
"La conversion de la chaine "...." en type 'Integer' n'est pas valide.

"Controls" prend en parametre seulement un int.
0
Utilisateur anonyme
26 déc. 2006 à 17:19
Salut,

Merci d'indiquer la version du framework (1, 2 ou 3).
Donc, pour la version 1 ; on met tout dans un tableau :




Private GroupeLabel As New System.Collections.ArrayList()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  GroupeLabel.AddRange(New System.Windows.Forms.Control() {Label1, Label2, Label3})
  For i As Integer = 0 To GroupeLabel.Count - 1
    Dim Lbl As System.Windows.Forms.Label = CType(GroupeLabel(i), System.Windows.Forms.Label)
    Lbl.Text = String.Format("Bonjour {0}", i)
  Next i

End Sub,

----

(Coloration syntaxique automatique par Kenji)



Ps: Merci Bidou, je n'avais jammais fait attention à ca.






__________
Kenji
0

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

Posez votre question
carribean Messages postés 9 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 20 février 2007
26 déc. 2006 à 17:45
c'est une application pioour pocket pc donc compact framework.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 déc. 2006 à 22:33
Charles> la méthode format prend des objets en paramètres, elle appelle donc bien entendu la méthode ToString implicitement. De plus, c'est plus logiquement d'écrire "i" que "i.ToString" (pour les objects de type référence, un peu moins).

<hr size="2" />-Blog-
0
carribean Messages postés 9 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 20 février 2007
27 déc. 2006 à 17:22
J'ai inalement fais des tableau de controles et ca marche.

Merci de votre aide
0
Rejoignez-nous