Instance multiple de formulaire, désigner l'un [Résolu]

Signaler
Messages postés
4
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
4
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
17 février 2009
-
Bonjour à tous,
tout d'abord, je suis étudiant et débute en Visual Basic pour les besoins d'un projet; mais j'ai quelques notion de programmation orientée objet.

Voilà mon problème :
Je souhaite créer de multiple instance d'une même classe (simple form pour l'instant) en cliquant sur un bouton.

La question est "comment accéder à ces forms ensuite?"
De la même manière que j'accède à ma form1 en faisant form1.blabla, je voudrais pouvoir faire formperso.blabla

J'ai essayé de changer l'attribut Name (je ne sais pas s'il s'agit bien du champ à changer)
formperso.Name=nomvoulu                     (où nomvoulu est un string)
Mais bien évidement quand je tente de faire un nomvoulu.show() par exemple, VB râle parce que nomvoulu est une string (et ne connait pas show()).

En bref, je voudrais faire en sorte que nomvoulu puisse être utilisé pour pointé sur mon instance.
Il y a t'il une manière simple de faire ça, sans passer par un indexe dans lequel les instances sont référencées par une clef qui est justement la chaine en question.
Si il n'y a pas d'autre solution, comment fait-on un indexe en VB ?  (heu non, là j'abuse, j'ai qu'à chercher... )

Merci de votre aide
Rouilleur

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
place les dans un tableau, externe a ta procédure.

ainsi, tu pourras faire:

MesFormPerso(4).Show
...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Set FormPerso = New Form1
FormPerso.Show ...
Messages postés
4
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
17 février 2009

Je n'ai peut-être pas été clair,
en cliquant sur un bouton je lance une procédure qui instancie une form.
Dim FormPerso As New System.Windows.Forms.Form
Dans la procédure, je la désigne bien sur par FormPerso.[ce que je veux].

Mais une fois sortie de la procédure (qui peut être lancée plusieurs fois), comment désigner les form ainsi crées ?

Le problème est que je veux que les instances aient un nom générique ( formperso1, formperso2, etc). Je ne peux donc leur fournir ce nom que sous la forme d'une string. Si j'ai à en utiliser 50, je ne veux pas avoir à faire :
Dim formperso1 As Form
Dim formperso2 As Form
...
Dim formperso50 As Form
Messages postés
4
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
17 février 2009

Merci pour ton aide,
j'hésitais à faire ça avec des tableaux, mais je voulais d'abord savoir s'il y avait une autre méthode qui me permette d'accéder à la form à partir d'un nom attribué automatiquement.