2010-07-02 4 views
0

Est-ce une question stupide? J'essaie de naviguer dans le monde mystique de C# Visual Studio. Je veux être en mesure de remplacer un panneau à un certain moment de l'exécution, mais la vue du concepteur n'a qu'une vue statique d'un seul état du formulaire.Comment utiliser l'affichage du concepteur dans Visual Studio pour concevoir plusieurs états du formulaire?

Par exemple, il pourrait y avoir panel1 sur le formulaire, avec button1 et picturebox1. Ensuite, si les utilisateurs pressent button1, panel1 sera remplacé par panel2. Panel2 a button2 et picturebox2.

Je sais comment faire panneau1 sur le concepteur très bien. N'y a-t-il pas moyen d'utiliser le concepteur pour créer panel2? Pouvez-vous seulement utiliser le concepteur pour faire un état du formulaire et ensuite vous devez faire n'importe quel autre état à la main?

Répondre

1

Je ne connais aucune méthode pour afficher différents états du formulaire dans le concepteur. Il semble cependant que ce que vous voulez faire soit deux contrôles utilisateur différents. Je suggère que vous créez un formulaire qui peut basculer entre deux contrôles utilisateur dans le code. Ce n'est pas exactement ce que vous avez demandé mais au moins maintenant vous n'avez pas à coder les différents panneaux en dehors du concepteur. Ce est ce que vous devez faire:

  1. UserControlPanel1 et UserControlPanel2 où vous concevez les différentes mises en page de votre point de vue. PanelLoaderForm
  2. PanelLoaderForm où vous laissez de la place pour charger les différentes commandes utilisateur. En fonction de vos besoins, vous pouvez implémenter du code pour montrer les différents contrôles utilisateur.

Ceci est VB.NET, mais le code dans votre PanelLoaderForm pourrait ressembler à ceci:

Private Sub LoadUserControl() 
    If UsePanel1 Then 
     Controls.Add(new UserControlPanel1())   
    Else 
     Controls.Add(new UserControlPanel2())   
    End If 
End Sub 

Ensuite, si vous voulez passer entre les deux Controls.Remove d'appel (oldControl) ou quelque chose avant d'ajouter le nouveau.

+0

Désolé, que signifie "passage entre deux contrôles utilisateur"? – lala

+0

J'ai édité ma réponse, j'espère que cela clarifie ce que je voulais dire. S'il vous plaît revenir si un besoin d'élaborer plus. – MikaelHalen

1

Je n'ai pas utilisé le concepteur de formulaires C# spécifiquement, mais en général vous concevez l'état initial du formulaire, et faites le reste (toutes les modifications dynamiques) dans le code. Maintenant, il pourrait être possible de mettre panel2 sur le formulaire, le rendre invisible, et juste basculer la visibilité des panneaux lorsque le bouton 1 est pressé, mais très probablement ce ne serait pas une bonne solution.

+0

exactement, car il produit une grande surcharge de la forme. Surtout si vous avez beaucoup de contrôles – KroaX

Questions connexes