Créer un control dans une boucle [Résolu]

maitesn1 54 Messages postés mercredi 14 juin 2006Date d'inscription 29 août 2006 Dernière intervention - 9 août 2006 à 15:55 - Dernière réponse : gilgar63 4 Messages postés mercredi 16 décembre 2009Date d'inscription 6 janvier 2012 Dernière intervention
- 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é
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 9 août 2006 à 16:02
3
Merci
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#]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de sebmafate
Meilleure réponse
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 11 août 2006 à 10:24
3
Merci
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

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_Bidou
cs_badrbadr 475 Messages postés jeudi 19 juin 2003Date d'inscription 3 novembre 2008 Dernière intervention - 9 août 2006 à 21:06
0
Merci
C'est une erreur mignone je trouve. Je me rappelle l'avoir deja fait

[:D] @++
Commenter la réponse de cs_badrbadr
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 9 août 2006 à 21:48
0
Merci
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
Commenter la réponse de cs_Bidou
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 10 août 2006 à 09:02
0
Merci
c'est possible ;)

mais il faut utiliser les mécanismes de compilations dynamiques

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
maitesn1 54 Messages postés mercredi 14 juin 2006Date d'inscription 29 août 2006 Dernière intervention - 11 août 2006 à 10:20
0
Merci
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
Commenter la réponse de maitesn1
maitesn1 54 Messages postés mercredi 14 juin 2006Date d'inscription 29 août 2006 Dernière intervention - 11 août 2006 à 10:44
0
Merci
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é
Commenter la réponse de maitesn1
maitesn1 54 Messages postés mercredi 14 juin 2006Date d'inscription 29 août 2006 Dernière intervention - 11 août 2006 à 10:53
0
Merci
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é
Commenter la réponse de maitesn1
gilgar63 4 Messages postés mercredi 16 décembre 2009Date d'inscription 6 janvier 2012 Dernière intervention - 7 sept. 2011 à 18:34
0
Merci
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....
Commenter la réponse de gilgar63

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.