Instancier une Form avec new ou pas ? [Résolu]

Signaler
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Bonsoir,
je me pose une question toute bête, doit'on instancier une Form ou pas ? du style : Dim MaForm as New Form2
Une Form est basé sur une classe, et apriori elle est directement utilisable comme n'importe quel objet instancié explicitement sauf qu'elle ne l'est pas. Mais je me demande si il y a des cas ou l'instanciation peut apporter quelques chose (a part le fait que l'on peut obtenir plusieurs instances d'une même Form et donc ouvrir plusieurs Form basé sur la même classe.

Je me suis amusé à faire quelques essais pour savoir comment se comporte une Form non instancié :
(J'ai Nommé Form1 la Feuille principale et Form2 la feuille pour faire des tests).
On peut par exemple exécuter une procédure de la Form2 du style MaForm2.MaProcedure depuis Form1.
Dans cette procédure on peut même modifier les variables privé déclarées dans Form2.
Et tout ceci sans avoir eu besoin à un moment ou a un autre de charger la feuille (l’évènement Load de Form2 n'ayant pas eu lieu)

Vous avez une expérience à ce sujet qui démontre l’intérêt de la chose ?
Ces une question qui à de l'importance pour un projet dans lequel je me sert d'une procédure du style comme ci-dessus pour transmettre certains paramètres à ma feuille Form2 depuis ma feuille Form1 et j'espère que ma méthode n'est pas trop bancale...

Merci d'avance pour vos retours d'experiences.

2 réponses

Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
Bonjour,

En clair, qualle est la différence entre :
Dim MaVar As New Type
et
Dim MaVar As Type=New Type

La différence est simple, dans le premier cas, la variable n'est jamais à Nothing alors que dans le second, c'est tout à fait possible.

MaVar=Nothing
MessageBox.Show((MaVar Is Nothing).ToString())

Dans le premier cas, Ce sera toujours faux alors que dans le second, ce sera vrai.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013

Merci Nhenry,
Je ne connaissais pas cette nuance.
Donc à priori si j'ai tout compris, nul besoin d'instancier une feuille puisque tous les contrôles et les procédures public quelles contient sont de toutes facons accessible de l'exterieur se qui prouve que la feuille est déja instancié explicitement (c'etait ma question).

je marque réponse acceptée mais si d'autres personnes veulent intervenir, qu'ils n'hesitent pas surtout si je dit des bétises.....