Instance multiple de formulaire, désigner l'un

Résolu
Rouilleur00 Messages postés 4 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 17 février 2009 - 16 févr. 2009 à 01:37
Rouilleur00 Messages postés 4 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 17 février 2009 - 17 févr. 2009 à 16:56
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 févr. 2009 à 23:28
place les dans un tableau, externe a ta procédure.

ainsi, tu pourras faire:

MesFormPerso(4).Show
...
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 févr. 2009 à 08:54
Set FormPerso = New Form1
FormPerso.Show ...
0
Rouilleur00 Messages postés 4 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 17 février 2009
16 févr. 2009 à 21:51
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
0
Rouilleur00 Messages postés 4 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 17 février 2009
17 févr. 2009 à 16:56
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.
0