2009-06-07 10 views
2

Je souhaite créer une application d'interface à onglets simple. Je l'ai déjà fait dans WPF en utilisant une commande usercontrol dans chaque onglet, et je communique avec le formulaire principal en recherchant un élément parent (le formulaire, ou le contrôle de tabulation)Interface utilisateur à onglets en C#

Comment pourrais-je faire la même chose dans WinForms? Quel élément dois-je mettre à l'intérieur de chaque onglet?

Merci.

Répondre

8

Vous pouvez utiliser à peu près la même approche dans une application winforms. Vous pouvez ajouter des contrôles utilisateur aux pages à onglet d'un TabControl sur un formulaire. Dans le code de contrôle utilisateur, vous pouvez utiliser la méthode FindForm pour obtenir le formulaire parent. Cependant, je suggère que vous utilisiez plutôt des événements pour communiquer "hors" des contrôles, afin de les rendre moins dépendants de leur environnement.

+0

Pourquoi FindForm au lieu de la propriété Parent? Juste curieux. =) –

+2

La propriété Parent retourne le parent, qui peut très bien être un autre contrôle sur le formulaire. Si vous placez un panneau sur un formulaire et le contrôle utilisateur dans ce panneau, vous devrez utiliser Parent.Parent pour accéder au formulaire. Vous pouvez considérer FindForm comme un raccourci qui mène directement au formulaire. –

+0

Oh, je sais comment fonctionne FindForm, je n'avais tout simplement pas considéré le problème récursif Parent.Parent.Parent. Merci! ^^ –

1

TabPage et TabControl peuvent être des classes et des composants que vous souhaitez examiner. En utilisant la propriété Parent, vous pouvez accéder au formulaire propriétaire et ainsi communiquer avec ou entre les onglets, si vous en avez besoin. Cependant, comme le suggère Fredrik Mörk, l'utilisation d'événements est une bien meilleure pratique. =)

Questions connexes