Créer un control dans une boucle

Résolu
maitesn1
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006
- 9 août 2006 à 15:55
gilgar63
Messages postés
4
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
6 janvier 2012
- 7 sept. 2011 à 18:34
salut tout le monde,
je voudrai savoir comment faire pour créer, par exple un texBox dans une boucle for ou while.
Mon probleme est que je n'arrive pas donner un nouveau nom.Je travaille avec un compteur qui a chaque fois qu' il parcours ma boucle il augmente de 1.J'ai essayé ceux ci:
int

i = 10;

while (rdr.Read()){

TextBox textBox+i+=
new
TextBox();

i++;

}
ça ne marche est ce que quelqu'un aurait deja rencontré ce type de probleme.
merci d'avance pour vos reponses.

Maité

9 réponses

sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
9 août 2006 à 16:02
tu ne peux pas faire ceci...

par contre, tu peux mettre tes textbox dans une collection :

private List<TextBox> mesTextBoxes = new List<TextBox>();

int i = 10;
whilte (rdr.Read()) {
    TextBox tb = new TextBox();
    tb.Name = string.Concat("textBox", i);
    mesTextBoxes.Add(tb);

    i++;
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
3
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
11 août 2006 à 10:24
Mais c'est normal, le code qu'il t'a donné insére des texteBox dans une collection (pas sur un formulaire!).
Donc maintenant, tu peux itérer dans ta collection pour les afficher (toutes ou certaines).
Faudra juste setter la location, et pas oublier de les ajouter dans leur containers...

<hr size="2" />VC# forever
3
cs_badrbadr
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
1
9 août 2006 à 21:06
C'est une erreur mignone je trouve. Je me rappelle l'avoir deja fait

[:D] @++
0
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
9 août 2006 à 21:48
Lol, qui n'a jamais essayé de vouloir construire dynamiquement le nom d'une variable
On a tous du passer une fois par là ou l'autre... ma fois, c'est pas possible en C# (ou peut-être avec Reflexion?)

<hr size="2" />VC# forever
0

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

Posez votre question
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
10 août 2006 à 09:02
c'est possible ;)

mais il faut utiliser les mécanismes de compilations dynamiques

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
maitesn1
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

11 août 2006 à 10:20
Merci sebmafate
 j'ai essayé ta proposition apparemment ça marche mais mes text box ne s'affiche pas.J'ai essayé de mette tb.visible=true mais rien ne s'affiche sur ma fenetre?
merci d'avanxce pour vons reponses
0
maitesn1
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

11 août 2006 à 10:44
pourtant j'ai ajouté les textBox dans un conteneur.Mon conteneur est ici groupBox1



while



(rdr.Read()){


TextBox
tb =

new



TextBox
();tb.Name =


string
.Concat(

"textBox"
, i);tb.Text = rdr.GetString(0);



tb.Location =




new
System.Drawing.

Point
(10, 40 * i);tb.Multiline =


true
;tb.Size =


new
System.Drawing.

Size
(618, 26);tb.Enabled =


false
;tb.Visible =


true
;mesTextBoxes.Add(tb);


this
.groupBox1.Controls.Add(tb);i++;

}


//fin while






Maité
0
maitesn1
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

11 août 2006 à 10:53
je vois ou se trouve mon erreur mon i est trop grand donc normal que ça n'apparaisse pas dans mon groupBox.


mille merci pour vos reponses

Maité
0
gilgar63
Messages postés
4
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
6 janvier 2012

7 sept. 2011 à 18:34
OK on est en 2011, je vois que ça a pas trop bougé, mais, c'est clair, c'est net, c'est bien. Merci à ceux qui ont répondu...

Le tout c'est de gérer la location de tout ça....
0