Appeler un champ dynamiquement

Résolu
Jul_ARSOE Messages postés 6 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 13 juin 2007 - 8 juin 2007 à 15:11
Jul_ARSOE Messages postés 6 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 13 juin 2007 - 8 juin 2007 à 16:10
Bonjour,

Je rencontre un petit soucis en VB.NET (framework 2.0). Grace à une boucle qui incrémente un compteur (i) et dont le maximum est variable, je génère des champ textbox qui se nomment txt1, txt2, txt3, et ainsi de suite...

Seulement derrière, je souhaite refaire une boucle pour récupérer le contenu des champ... et j'en suis incapable. C'est à dire que j'aimerais faire ceci :

dim MonChamp as string
dim Valeur  as string

For i = 1 to n
   MonChamp="txt" & i
   Valeur=MonChamp.text
Next

pour info : Avant je travaillais en windev et cette opération s'effectuait simplement en entourant la variable de {}

D'avance merci

PS : désolé je savais pas comment mettre moin bout de code comme tout le monde le présente ici.

3 réponses

Raul duke Messages postés 70 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 17 mai 2019 2
8 juin 2007 à 15:28
For i = 1 to n
   MonChamp.name ="txt" & i
   Valeur=MonChamp.text
Next
3
fiko81 Messages postés 381 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 5 septembre 2010 3
8 juin 2007 à 15:28
Bonjour,
VB n'est pas du PHP. Il ya par contre deux solutions pour faire ce que tu veux faire :
- Utiliser des textbox indexés : txtbox(0), txtbox(1), txtbox(2), txtbox(3), txtbox(4), ... Après pour balayer c'est un jeu d'enfant
- Utiliser un composant vbScript pour génerer du code à partir d'une chaine de caractère. La il faut un peu plus de temps pour ocmprendr comment ça marche et une programmation organisée à cet effet.

La première solution devrait à mon avis te satisfaire.

 Fiko ;-)

La reponse vous convient pensez > Accepter <
<hr />
0
Jul_ARSOE Messages postés 6 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 16:10
Merci pour la rapidité des réponses ! mais j'ai honte j'aurais du trouver seul... on va mettre ca sur le compte du vendredi

Donc pour moi voila ce que ca donne exactement :

dim txt as textbox
dim valeur as string

for i=1 to n
   set txt = new textbox 'pas sur que ca soit nécessaire
   txt.ID="txt" & i
   valeur=txt.text
   txt=nothing   'peut etre pas nécessaire non plus mais je testerai lundi !
next   
0