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 37
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 61
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 61
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 37
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 1
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
Rejoignez-nous