Création dynamique de contrôles en VB

Fermé
poupyman Messages postés 62 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 28 mars 2004 - 17 mars 2003 à 17:18
beldyn Messages postés 188 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 février 2005 - 18 mars 2003 à 17:14
Bonjour,

je travaille actuellement sur une application en VB qui doit faire apparaitre un nombre variable d'élements textbox sur mon formulaire. J'ai essayé de définir des variables de type textbox et de mettre à jour moi même les propriétés mais je ne récolte que des messages d'erreurs (variable objet ou variable bloc with non définie) et je me fais jeter comme un malpropre si j'essaie de faire un Set MaTextBox = New TextBox (utilisation incorrecte du mot clé new)

Est-ce-que quelqu'un sait comment faire ? SVP help !

Loi fondamentale des réseaux :
Un réseau ne fonctionne bien qu'en mono-poste
A voir également:

3 réponses

beldyn Messages postés 188 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 février 2005 19
18 mars 2003 à 17:14
Salut,
J'ai une méthode assez simple:
tu crees un controle indexé, qui sera le seul sur ta feuille lors de la construction.
Ensuite, a chaque fois que tu veux en ajouter un (attention il herite des mêmes propriété que le premier) tu utilses la méthode Load
ex:
Sur une feuille form1, tu places un controle textbox, et tu lui assigne l'index 0 (le plus simple, tu fais un copier/coller du controle, VB te demande si tu veux l'indexer tu répond oui et tu effaces le dernier créé)
Ensuite, dans le load de la feuille tu ajoutes le code suivant
Load me.text1(1)
Load me.text1(2)
Load me.text1(3)
for i = 1 to 3 step 1
me.text1(i).visible=true
me.text1(i).top = me.text1(i-1).top + me.text1(i-1).height + 20
next i

voila, c tout, pour les detruire, faut faire un unload, mais en commencant par le dernier index.

J'ai fait ca de mémoire, il y a peut-être une erreur, dis moi si ca fonctionne.
a+
1
poupyman Messages postés 62 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 28 mars 2004 15
18 mars 2003 à 14:58
Ben j'ai pas trop compris ta méthode, mais j'ai trouvé un moyen de faire des 'tableaux de contrôles' (trad by mwa) qui permettent d'avoir des contrôles avec des noms du genre MaZoneDeTexte(i).
Je vais essayer de fouiller dans cette direction
Merci quand même

Loi fondamentale des réseaux :
Un réseau ne fonctionne bien qu'en mono-poste
0
Utilisateur anonyme
17 mars 2003 à 22:56
Salut...
Oui moi je sais :o)
Mais la je sais plus par coeur, je te donne une piste, si tu t'en sors pas demain avec, hesite pas a remonter ce post j'ai ca au boulot.

En fait il faut faire un form.controls.add() et il faut que tu regardes les proprietes du add (ou addcontrol peut etre), il doit falloir mettre le nom du controle et son type je crois...
De tete et sans VB sous la main je peux pas t'en dire plus...

.  .
\_/
-2