Rechercher : dans
Par :

Création dynamique de contrôles en VB

Dernière réponse le 18 mar 2003 à 17:14:55 poupyman, le 17 mar 2003 à 17:18:26 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Création dynamique de contrôles en VB » dans :
Créer un site beau, dynamique et respectueux des standards VoirVoici une liste de liens qui vous aideront à mieux exploiter les standards (HTML, CSS, DOM...) pour créer des sites plus beaux, plus dynamiques et plus respectueux des standards. A la fin de cette page, il y a également une liste de...
Les objets en langage C++ VoirLa création d'objets En C++, il existe deux façons de créer des objets, c'est-à-dire d'instancier une classe : de façon statique de façon dynamique La création statique La création statique d'objets consiste à créer un objet en lui affectant un...
WSH - Objet WshShell VoirWshShell L'objet WshShell contient des informations sur l'environnement d'exécution, ainsi que des méthodes permettant de gérer l'exécution locale d'applications, de manipuler la base de registre, d'accéder aux ressources systèmes (base de...

1

Obeet, le 17 mar 2003 à 22:56:32

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...

.  .
\_/

Répondre à Obeet

2

poupyman, le 18 mar 2003 à 14:58:29

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

Répondre à poupyman

3

 beldyn, le 18 mar 2003 à 17:14:55
  • +1

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+

Répondre à beldyn