Créer des controls de formulaire dynamiquement dans une boucle for [Résolu]

Messages postés
25
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
30 août 2010
- - Dernière réponse : jparia
Messages postés
25
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
30 août 2010
- 25 août 2010 à 21:11
Bonjour,
je m'initie au langage C# sous Visual Studio 2010 Express.
je veux créer un formulaire dynamiquement pouvant contenir 1 à X champs de saisi (textbox) avec labels (Label) selon le nombre de paramètres récupérés dans un tableau nommé paramNameIn.
Comment créer plusieurs contrôles Label et TextBox dans cette boucle?

l'exemple ci dessous ne fonctionne pas car les objets L1 et T1 sont créés qu'une seule fois:
/* création du formulaire */
DialParametres = new Form();
int y = 20;  //    
for (int i = 0; i < paramNameIn.Length; i++)
{
/* création du label */
Label L1 = new Label();
L1.Text = paramNameIn.GetValue(i).ToString();
L1.Location = new System.Drawing.Point(10, y+10);
L1.Size = new System.Drawing.Size(100, 20);
DialParametres.Controls.Add(L1);
/* création du textbox */
TextBox T1 = new TextBox();
T1.Location = new System.Drawing.Point(115, y+10);
T1.Size = new System.Drawing.Size(100, 20);
T1.Multiline = false;
T1.Name = "T" + i.ToString();
T1.Text = i.ToString() + " / " + paramNameIn.Length.ToString();
T1.TabIndex = 1;
DialParametres.Controls.Add(T1);
y++;
}
/* affichage du formulaire */
DialogResult res = DialParametres.ShowDialog();


Merci d'avance ;)
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
25
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
30 août 2010
3
Merci
non c'est bon, j'ai simplement fait une erreur au niveau de l'incrément de la variable y (y++ == y+1 et non y+20) donnant la position verticale
donc tous mes champs se superposaient.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jparia