Bonjour à tous,
Est-il possible de paramétrer un nom de variable en VB svp?
j'ai cherché sur Google et mes recherches n'ont rien donné...c'est pourtant une méthode qui permet de faire gagner beaucoup de temps....
merci d'avance pour vos réponses!
Bonjour à tous,
Est-il possible de paramétrer un nom de variable en VB svp?
j'ai cherché sur Google et mes recherches n'ont rien donné...c'est pourtant une méthode qui permet de faire gagner beaucoup de temps....
merci d'avance pour vos réponses!
eh bien j'ai :
donc je voudrais pourvoir faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim sour As Integer sour=Form_souc.cout_sourcing_moyen.Text 'mais je veux que sour soit egal à Form_souc.cout_sourcing_pk.Text 'puis Form_souc.cout_sourcing_op.Text 'etc.
Si je réussis à faire ça, je pourrai ensuite créer un tableau de String avec les différents noms auxquels je veux faire appel, et faire une boucle sur ce tableau, ce qui me fera gagner énormément de temps!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim param As String param="moyen" sour=Form_souc.cout_sourcing_¶m&.Text
Passe par un dictionnaire (ou une hashtable si tu utilises le framework 1.1). En clé tu mets le nom de ta "variable" et en valeur ce que tu veux lui associer (une chaîne, un contrôle, ...). Très simple de boucler dessus ensuite ou même d'accéder à un élément particulier connaissant le nom de la "variable".
Après, si tu n'as pas besoin d'accéder à un élément en particulier car tu dois toujours boucler sur l'ensemble une simple liste pourrait suffire je pense (la liste des contrôles dont on veut récupérer le texte par exemple). Il faudrait plus d'informations sur ton besoin et dans quels cas il s'applique pour mieux répondre après, car avec l'exemple de code donné on peut extrapoler mais on a vite fait de partir à côté.
merco StormimOn de ta réponse mais je ne sais pas ce qu'est une hashtable ou un dictionnaire...?
en fait j'ai 5 lignes avec 4 textbox, pour chacune de ces lignes je veux calculer la quatrième textebox avec la valeur des 3 premières. Je ne veux pas réécrire à chaque fois ce calcul , d'autant plus que j'ai besoin de refaire cette même action un peu plus bas dans mon form.
J'ai nommé mes textboxes avec en debut du nom la colonne et en fin de nom la ligne.
Donc je voulais faire:
mais avoir à faire chaque Select etc. c'est beaucoup trop long...donc je voudrais pourvoir mettre un nom de variable paramétrable pour pouvoir faire un boucle sur un tableau et ne pas m'embêter!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 For i = 1 To 5 Select Case i Case 1 cout_so = Me.cout_s_moyen.Text cout_e = Me.e_moyen.Text ri_d = Me.rs_d_moyen.Text ri_v= Me.rs_v_moyen.Text ri_p = Me.rs_p_moyen.Text End Select cout_so = cout_e * (1 + (ri_d/ 100)) * (1 + (ri_v / 100)) * (1 + (ri_p / 100)) Select Case i Case 1 Me.cout_s_moyen.Text = cout_so End Select Next
je ne sais pas si j'ai été assez claire...
Une fois que l'on a le besoin exprimé ainsi c'est beaucoup plus clair ^^
On peut éventuellement faire une liste de listes de TextBox (pour représenter les TextBox de chaque ligne). Ensuite pour chaque ligne de TextBox on fait le traitement avec les premières et on met le résultat dans la dernière.
Désolé c'est du C# (framework 2.0), mais cela devrait rester compréhensible dans le principe
En espérant que cela t'aide ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 List<List<TextBox>> textboxes = new List<List<TextBox>>(); // Ajout des TextBox // Ligne 1 textboxes.Add(new List<TextBox>()); textboxes[0].Add(textbox1); textboxes[0].Add(textbox2); textboxes[0].Add(textbox3); textboxes[0].Add(textbox4); // Ligne 2 textboxes.Add(new List<TextBox>()); textboxes[1].Add(textbox5); textboxes[1].Add(textbox6); textboxes[1].Add(textbox7); textboxes[1].Add(textbox8); // Ligne X ... string computedText; // On parcours chaque ligne foreach (List<TextBox> list in textboxes) { // Génération du texte en fonction des premières TextBox de la ligne en cours ... // Affectation du texte à la dernière TextBox de la ligne en cours list[list.Count - 1].Text = computedText; }
Partager