Action sur plusieurs textbox qui portent quasi le même nom

eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 - 3 avril 2008 à 21:37
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 - 4 avril 2008 à 16:53
Salut à tous (et à toute)

je suis devant un piti problème (comme tous ceux qui mettent un message sur le forum, vous me direz) mais là, je bute

Voilà

J'ai plusieurs textbox qui portent toutes presque le même nom : TextBoxBaseTS1, TextBoxBaseTS2, TextBoxBaseTS3..... au nombre de 10

et j'aurai savoir s'il y avait la possibilté avec un for de 1 à 10 de leur faire faire la même action

alors, j'ai bien essayé avec mes vieilles habitudes de php, de faire un truc du style TextBoxBaseTS(i) avec i qui varie, enfin bref, ça marche

j'ai maté 2-3 forums qui m'ont parlé de me.controls(...) ou même de la propriété tag mais j'arrive po

alors s'il ya une ame charitable qui passe par là et qui veux bien m'aider sur ce coup là.... (ou m'expliquer le tag et j'me debrouillerai)

merci d'avance

4 réponses

eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
3 avril 2008 à 21:41
Ah oui, c'est sous VB express, suis bête, z'l'ai po dit
0
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
3 avril 2008 à 21:54
Z'va essayer ça et j'vous dirai quoi :


Mettre les 20 TextBox dans un tableau:

Créer les textbox suivantes: TextBox0, TextBox1,...

'En haut du module
Dim Textes(19) As TextBox

'puis dans le form_load
Textes(0) = TextBox0
Textes(1) = TextBox1
Textes(2) = TextBox2
...

'ensuite, on peut bien utiliser la syntaxe de VB 6.0

Dim i As integer
For i = 0 To 19
Dim MyTexte As Integer= Textes(i).Text
..
Next

Noter qu'on a créer un tableau de TexBox, si on utilise un tableau d'objet, il faut caster l'objet en textbox pour utiliser sa propriété text:



Dim Textes(19) As Object

Textes(1) = TextBox1

Textes(2) = TextBox2

...

Dim i As Integer

For i = 1 To 2

Dim MyTexte As String = CType(Textes(i), TextBox).Text

Next
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 avril 2008 à 22:03
Sous VB Express, donc VB2005 Express (ou VB2008 Express).

Effectivement en .Net les groupes de controles (et donc les controles indexés) n'existent plus. Une solution serait de mettre les controles manuellement dans une collection et de les appelés à travers les éléments de la collection.

Ceci dit, sur ta feuille, il existe déjà une collections des controles, il s'agit de Me.Controls, et tu peux très bien utiliser tes controles à travers cette collection.

Dans ton cas :

For i as integer = 1 to 10
    Me.Controls("TextBoxBaseTS" & i.ToString).Text = "Banzaï"
Next

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
4 avril 2008 à 16:53
J'lai fait avec la méthode du Panel, ça fonctionne sans problème. -->http://plasserre.developpez.com/v3-9.htm
Merci Casy
0
Rejoignez-nous