Appeler un champ dynamiquement

[Résolu]
Signaler
Messages postés
6
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
13 juin 2007
-
Messages postés
6
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
13 juin 2007
-
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

Messages postés
70
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
17 mai 2019
2
For i = 1 to n
   MonChamp.name ="txt" & i
   Valeur=MonChamp.text
Next
Messages postés
381
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
5 septembre 2010
3
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 />
Messages postés
6
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
13 juin 2007

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