copie de form de façon dynamique

copie de form de façon dynamique - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2003 à 10:05:20    

Salut,
 
Dans mon application je souhaite créer dynamiquement des form et leur rajouter des controles. La technique que je pense employer consister à avoir une form modèle, avec un control de chaque type (label, textbox, ...) qui auront un index 0. Ainsi je pourrais rajouter des contrôles de meme type en faisait load typecontrol(index).
 
Mon problème est de créer une form qui contient tous ces types de
controles. J'envisage 2 solutions.
 
    1) ajouter dynamiquement des controles d'index 0, à priori, c'est pas possible
 
    2) créer avec l'interface vb, une form contenant ces types de
controles d'index 0, ensuite, je ferais une copie de cette form pour créer les forms que je dois faire.
 
Ma question est comment fait t-on pour faire une copie d'une form et des contrôles qu'elle contient, et ce de façon dynamique, car je ne sais pas à l'avance, combien de form j'ai besoin.
 
Merci par avance

Reply

Marsh Posté le 23-05-2003 à 10:05:20   

Reply

Marsh Posté le 23-05-2003 à 11:04:25    

pourquoi faire une "copie" de form alors qu'il te suffit de la réinstancier dans une autre variable, ou même un tableau de forms? :??:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 23-05-2003 à 11:08:17    

effectivement rien ne t'empeche de créer dynamiquement tes forms et de leurs ajouter des controles  :heink:

Reply

Marsh Posté le 23-05-2003 à 11:31:22    


Bon ok, pour l'instanciation, merci
Des fois, on ne pense pas au plus élémentaire  :p
 
Par contre, je suis dans la bonne voix pour mettre des controls sur ma form, je dois bien cacher des controls d'index 0 que je cache. Et je crée des nouveaux en faisant des load control (index).  
 
J'avais utilisé une autre technique, avec la methode controls.add, le probleme, c'est que l'on doit créer autant de variable que control, sinon, on ne peux pas gérer les évènements sur ces controles. Le problème c'est qu'on ne peut pas définir une variable en mode excécution, n'est ce pas ?  
 
Ca m'arrangerait bien de ne pas avoir à cacher ces controls, alors si je peux faire autremment ...
 
Merci de vos réponses

Reply

Marsh Posté le 23-05-2003 à 11:39:19    

tu ne peux effectivement pas créer de variables à l'exécution, et en fait, tu n'as pas trop le choix:
 
1) tu utilises Controls.Add pour ajouter des contrôles dont les noms seront déclarés préalablement
2) tu fais des Load control en cachant un contrôle d'index 0 au design time pour chaque type de contrôle.
 
Et on ne peut pas faire un Private WithEvents txt(5) As TextBox :/
 
La méthode la moins prise de tête me semble être la seconde puisque tu pourras gérer tes events avec une procédure par type d'event.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 23-05-2003 à 12:02:10    


c'est bien ce que je pensais
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed