2012-04-15 7 views
-1

J'ai été coincé dans un problème simple. et je ne pouvais pas l'enlever.C# Simple GUI Panel

J'ai changé le panneau en public statique. pour accéder au panneau à travers les pages. et quand j'ai changé l'interface graphique, le public statique devient public. et me donne une erreur. que vous ne pouvez pas accéder au membre public ici.

Donc, je dois définir statique chaque fois que je change un peu d'une interface graphique pour exécuter le programme.

Pourriez-vous s'il vous plaît me contacter. Je sais que c'est une question de poubelle. Je suis curieux de savoir que ce qui se passe au revers. J'utilise visual studio 2011. developer preview.

+2

Qu'est-ce que le but d'une telle manipulation? –

+5

Quelle bibliothèque GUI utilisez-vous? Winforms? WPF? ASP.NET? Métro? – svick

+0

J'utilise des formulaires Windows. –

Répondre

1

Je suppose que vous utilisez WinForms.

Ne modifiez pas le code généré automatiquement généré par Microsoft Visual Studio, il sera simplement remplacé lorsque vous modifiez quelque chose. Au lieu de cela, utilisez un static dans le code derrière.

Par exemple, un bouton qui modifie une variable lorsque vous cliquez dessus. Considérer également un design complètement différent, car l'utilisation de la statique publique tôt ou tard causera beaucoup de maux de tête pour vous. Habituellement plus tôt.

+0

static public System.Windows.Forms.Panel Programme; c'est ce que je déclare –

+0

ouais, j'ai compris. Vous utilisez ce formulaire ailleurs car il doit être statique - A quoi ressemble ce code? Modifiez votre question s'il vous plaît. – vidstige

+0

Merci. J'ai un autre moyen de le faire. mais je veux le faire de cette manière. J'espère que vous comprenez ce que j'essaie de faire. En fait j'essaye d'employer le panneau déclaré sous une forme à une autre forme facilement. Je ne veux pas faire une fonction ou passer la référence de l'objet du panneau. Je veux juste utiliser normalement. Il suffit donc de savoir quels sont les changements de fond que le studio visuel essaie de faire. devrait. Je veux aussi savoir, est-ce un bon moyen. –

0

Je ne sais pas bien compris votre question correctement (que voulez-vous dire par « chaque fois que je changé l'interface graphique »?), Mais peut-être c'est ce que vous cherchez:

public partial class Form1 : Form 
{ 
    public static Panel panelS = new Panel(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 
} 

Et:

public partial class Form2 : Form 
{ 
    public Form2() 
    { 
     InitializeComponent(); 
     Form1.panelS.Location = new Point(100, 100); 
    } 
} 
+0

dans le constructeur de Form2 vous n'avez aucune référence à Form1 et l'instancier dans le constructeur de Form2 serait vaincre le but. Vous devez passer une référence de Form1 dans Form2. –

+0

Non, le champ panelS est statique. – vidstige