Dans Flex, il y a le composant ViewStack. Est-ce que C# a un contrôle similaire?
Si oui, lequel? Si non, comment créez-vous un comportement similaire?Est-ce que les winforms C# ont un contrôle comme "ViewStack" dans Flex?
Répondre
Oui, le composant TabControl fonctionne de cette manière. Tout ce que vous avez à faire est de cacher les onglets. Ajoutez une nouvelle classe à votre projet et collez le code ci-dessous. Compiler. Déposez le nouveau contrôle du haut de la boîte à outils sur votre formulaire. Les onglets sont toujours visibles au moment du design, ce qui facilite l'édition des pages. Mais caché à l'exécution. Utilisez la propriété SelectedTab ou SelectedIndex pour sélectionner la vue.
using System;
using System.Windows.Forms;
class ViewStack : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}
Je ne pense pas qu'il existe nativement. Vous devrez probablement jouer avec la propriété Visible.
Non, aucun contrôle standard n'offre le même comportement.
Cependant, pour obtenir un comportement similaire, je créerais simplement un nouveau UserControl pour chaque élément de la pile de vues et les ajouterais à un formulaire parent au même emplacement et avec la même largeur/hauteur.
En utilisant une méthode d'aide, il est alors simple de masquer tous les contrôles utilisateur, puis afficher le contrôle spécifique de l'utilisateur en fonction d'un paramètre d'entrée. Le principal avantage de UserControls est que vous pouvez utiliser le concepteur pour créer visuellement chacun des éléments de pile distincts. Un inconvénient possible est que si vous avez plusieurs éléments dans la pile, ou que chaque élément de la pile est complexe, l'utilisation de la mémoire peut devenir assez importante.
Et est-ce (d'une certaine manière) comment, par exemple, la fenêtre d'options dans Visual Studio est créée? C'est ce qui a soulevé ma question. – MysticEarth
Ne sais pas avec certitude, mais il serait probablement utiliser une approche similaire. Une approche encore plus légère pourrait consister à utiliser les contrôles Panel à la place de UserControls, mais cela nécessiterait que chaque panneau soit dynamiquement rempli de contrôles enfants lors de l'exécution. – Ash
- 1. contrôle CustomListbox, comment faire les articles ont une coutume les sentir dans C# (WinForms)
- 2. Comment mettre formitems dans viewstack en flex?
- 3. Flex enfants ViewStack includeIn fonctionne drôle
- 4. ajouter par programme des vues à un flex de viewstack
- 5. Verrouiller un contrôle winforms
- 6. Comment utiliser WinForms/WPF comme contrôle ActiveX?
- 7. contrôle de page en flex (comme php)
- 8. Flex Aide: redoublants ne pas répéter dans un contrôle Accordian
- 9. Supprimer le contenu enfant de ViewStack dans Flex 4
- 10. quel est l'équivalent de viewstack de flex dans WPF?
- 11. Visionneuse PDF intégrée dans un contrôle WinForms
- 12. Flex 3: est-il possible d'utiliser DeepLinking sans ViewStack?
- 13. C# - Les threads peuvent-ils se comporter comme BackgroundWorkers (winForms)?
- 14. C# Winforms Contrôle Transparent permettant le Clic
- 15. C# contrôle utilisateur comme un panneau personnalisé
- 16. Sécurité dans Winforms comme c'est le webforms
- 17. C# WinForms contrôle transparent permettant Clickthrough
- 18. Winforms C# - Ajout de formulaires à un contrôle FlowPanel
- 19. Flex: création d'une barre de navigation multi-colonnes pour viewstack
- 20. Contrôle Winforms qui fonctionne comme ajax tag-completion
- 21. Affichage d'un indice pour un contrôle d'édition winforms C#
- 22. Utilisation d'un contrôle C# WinForms dans une application C++/CLI (WinForms)
- 23. Les enfants de Flex Viewstack, si vous ne pouvez pas les voir, existent-ils?
- 24. Contrôle vs UserControl dans WinForms?
- 25. Collision de contrôle dans winforms
- 26. Utilisation d'un contrôle WPF personnalisé dans WinForms
- 27. Grogner comme les notifications dans Flex
- 28. contrôle ciblé précédent dans WinForms
- 29. C# Winforms DataGridView avec tri/filtrage comme Ms Excel
- 30. Utiliser une méthode pour manipuler un contrôle dans WinForms
Pendant que cela fonctionne, j'ai eu z problèmes de commande lors de la gestion de l'onglet. Pour masquer/afficher les pages, il suffit de modifier l'ordre z de la page visible pour l'amener au sommet. J'ai eu des contrôles enfants visibles même lorsque leur onglet parent n'est pas actif. – Ash
@ash - c'est très inhabituel, peut-être que vous devriez commencer une discussion à ce sujet. –
Belle réponse :) Vraiment utile, mais comment désactiver la navigation entre les onglets pour que tous les composants des onglets fonctionnent correctement? Je ne peux pas retourner true dans 'ProcessCmdKey' car de cette façon même textBox simple ne fonctionnera pas – Misiu