2009-12-19 5 views
0

Je veux déclarer sur le formulaire comme variable globale, puis travailler avec cela dans l'application. Je ne veux pas utiliser la méthode ci-dessous pour accéder aux formulaires d'application.déclarer des formulaires globaux

Form1 myForm = new Form1(); 

quelqu'un a une idée?

grâce

+0

Pourquoi pas? _______ – Nifle

+1

J'ai une idée. Ne fais pas ça. Les variables globales sont mauvaises. – Marek

+1

Qu'essayez-vous d'accomplir? Il y a probablement un meilleur moyen que de rendre le formulaire entier global. – keyboardP

Répondre

3

On dirait que vous voulez que votre formulaire soit un Singleton, ce qui n'est pas mon motif préféré, mais il bat un global.

+0

Un singleton fera aussi longtemps que vous ne faites que masquer et ne fermez pas le formulaire. Mais en effet, mieux qu'un global. –

+0

Henk a raison. L'appel à proximité entraînera l'élimination du formulaire, ce qui signifie que vous devrez le recréer pour le montrer à nouveau, ce qui irait à l'encontre du but du singleton. Je suis d'accord avec les autres affiches qui suggèrent que l'idée pourrait être mauvaise, mais si vous avez une bonne raison, cela peut être fait. –

0

mon chemin est une classe statique déclare qui ont Form1 de variable statique.

public static class Global 
{ 
    private static Form1 myForm = new Form1(); 
    public static bool Show() 
    { 

     myForm.Show(); 
    } 

    public static bool Hide() 
    { 
     myForm.Close(); 
    } 
} 

ce n'est pas bon moyen?

+0

Ce n'est pas. Ce code va exploser lorsque l'utilisateur ferme le formulaire. Si vous empêchez l'utilisateur de fermer le formulaire, il s'agit d'une fuite de mémoire permanente. Pourquoi avez-vous besoin de cela? –

+0

vous devrez vous assurer que Close() n'est jamais appelé, car cela élimine le formulaire. –

+0

nobugz: J'ai besoin de ça parce que je veux montrer/cacher Form1 chaque fois que je veux. Jason: merci, j'ai changé près de cacher. – Sadegh

Questions connexes