2009-06-07 12 views
2

Ich möchte eine einfache Tabbed Interface App erstellen. Ich habe es zuvor in WPF mit einem Benutzer-Steuerelement innerhalb jeder Registerkarte, und ich kommuniziere mit dem Hauptformular Suche nach einem übergeordneten Element (das Formular oder die Registerkarte Steuerelement)Tabbed Benutzeroberfläche in C#

Wie konnte ich das gleiche in WinForms gemacht? Welches Element muss ich in jede Registerkarte einfügen?

Danke.

Antwort

8

Sie können praktisch den gleichen Ansatz in einer Winforms-Anwendung verwenden. Sie können Benutzersteuerelemente zu den Registerkarten eines TabControl in einem Formular hinzufügen. Innerhalb des Benutzersteuerungscodes können Sie die FindForm Methode verwenden, um das übergeordnete Formular zu erhalten.

Allerdings würde ich vorschlagen, dass Sie stattdessen Ereignisse verwenden, um "out" von den Steuerelementen zu kommunizieren, um sie weniger abhängig von ihrer Umgebung zu machen.

+0

Warum FindForm anstelle der Parent-Eigenschaft? Nur neugierig. =) –

+2

Die Parent-Eigenschaft gibt das Parent zurück, das sehr wohl ein anderes Steuerelement im Formular sein kann. Wenn Sie einen Bereich in ein Formular und das Benutzersteuerelement in diesem Bereich einfügen, müssen Sie Parent.Parent verwenden, um das Formular zu erreichen. Sie könnten FindForm als Verknüpfung betrachten, die direkt zum Formular führt. –

+0

Oh, ich weiß, wie FindForm funktioniert, ich hatte einfach nicht das rekursive Problem Parent.Parent.Parent berücksichtigt. Vielen Dank! ^^ –

1

TabPage und TabControl könnten Klassen und Komponenten sein, die Sie untersuchen möchten. Mit der Parent-Eigenschaft können Sie auf das besitzende Formular zugreifen und somit mit ihm oder zwischen den Tabs kommunizieren, falls Sie es benötigen.

Obwohl, wie Fredrik Mörk vorschlägt, die Verwendung von Ereignissen eine weit bessere Praxis ist. =)