Plusieurs Pages dans un Formulaire? C#
Je n'ai pas fait cela pendant un certain temps alors je ne suis pas tout à fait sûr de savoir comment faire ce dont j'ai besoin, mais je suis sûr que c'est assez simple.
En gros, j'ai un formulaire avec un volet de navigation. Je veux faire en sorte que, lorsqu'un utilisateur clique sur un bouton sur ce volet, dire 'Home' il change le contenu sur la forme, mais n'est pas réellement passer à une autre forme, si vous me chercher?
Comme je voudrais le volet de navigation à rester tel qu'il est tout le temps et je veux seulement le contenu du formulaire de changement. C'est presque comme le "TabControl' outil de Visual Studio "boîte à outils" même si au lieu de les onglets directement au-dessus du contenu, je veux les boutons affichés dans un volet latéral. Voir l'image ci-dessous pour une meilleure compréhension. Merci!
(Volet de droite, et de l'en-tête reste le même, peu importe sur quel bouton est pressé, mais les changements de contenu.)
UserControl
?Vous pouvez mettre votre contenu dans des récipients différents, et de cacher/montrer avec vos boutons. Cependant, cela ressemble à une grosse application, à partir d'une performance / entretien pov, je ne le recommande pas. Une alternative est de placer l'ensemble de votre contenu dans des formes distinctes, et de cacher/montrer (et de chargement/déchargement) dans le conteneur.
La honte vous faites cela en WinForms. Le PAM a beaucoup plus agréable fonctionnalités.
pour être honnête, je ne suis pas vraiment sûr de savoir comment utiliser UserControl, je vais faire quelques recherches et voir ce que je peux faire avec elle. La réponse ci-dessous à propos de UserControls semble approfondie alors je vais lui donner un aller une fois, je comprends. Alexandre je pensais faire, mais comme vous l'avez dit, il n'est pas toujours la meilleure solution en termes de performances. Je pars avec cette idée si je ne peux pas le faire d'une autre manière. Merci. MPatel ouais, je préfère WPF, bien que depuis que c'est pour une Université d'affectation je pense qu'ils veulent nous utiliser Windows Forms
OriginalL'auteur n00bAppDev | 2014-03-11
Vous devez vous connecter pour publier un commentaire.
J'avais en œuvre cette aide
UserControl
s. UnUserControl
s'affiche quand on clique sur un bouton. J'aimerais créer une interface (par exempleIView
) qui seraient mis en œuvre par chaqueUserControl
qui déclare fonctionnalités communes, comme par exemple une méthode pour vérifier si vous pouvez passer de l'un à l'autre (comme un formulaire OnClosing événement) comme ceci:Ensuite, changer de vue est assez facile:
Dans un bouton, vous pourriez faire ceci:
J'ai utilisé avec succès cette approche à de nombreuses reprises.
SwitchView
méthode que vous avez écrit, et au lieu d'accepter uneIView
en tant que paramètre, j'ai utiliséUserControl
à la place. Donc, à mon bouton cliquez sur les méthodes que je viens de déclarer une nouvelleUserControl
je passe alors queUserControl
par le biais de laSwitchView(UserControl)
méthode. Fonctionne comme un charme. Merci!!!!!OriginalL'auteur Thorsten Dittmar
Façon la plus simple est de placer des Panneaux multiples comme les détenteurs de contenu, de mettre en œuvre un gestionnaire de contenu qui conserve une référence à des Panneaux et, avec elle, afficher/masquer le panneau souhaité.
Simple, mais pour les petites applications, il travaillera
Je voulais l'ajouter comme commentaire, cependant je n'ai pas assez de réputation. Alors, comment puis-je partager cette idée ?
cela ne signifie pas que vous allez gagner de repos en postant des commentaires comme réponse, essayez de véritablement répondre à certaines questions et gagner de repos de cette façon.
Il n'y a rien de mal avec l'aide d'une réponse ici.
Manish: je n'ai pas wanned à gagner quoi que ce soit, j'ai utilisé seulement une façon de partager l'idée. mais merci pour le feedback
OriginalL'auteur Mastenka
Vous pouvez simplement utiliser un
TabControl
qui a autant deTabPages
que vous le souhaitez. Pour leTabControl
vous pouvez définir laAlignment
propriétéLeft
OriginalL'auteur sh_kamalh