TabControl ohne Reiter

Alphamännchen

Mitglied
Hallo

Folgendes Problem: Ich habe ein Formular mit mehreren sichtbaren Ebenen. Und jetzt habe ich das Problem, wie ich am geschicktesten, die einzelnen Ebenen sichtbar bzw. unsichtbar machen kann.

Zurzeit weiß ich mir nicht anders zu helfen, als dass ich die einzelnen Ebenen auf Panels positioniere und dann das oberste Panel unsichtbar mache und das darunterliegende sichtbar ...

Gibt es da andere Möglichkeiten? Praktisch eine TabContol mit einzelnen ansprechenbaren Pages ohn die Reiter?
 
Nach xeEEenon's Nachfrage auf mein Problem, will ich hier noch einmal genauer (verständlicher) schreiben, was mein Problem ist:

Also mit Reiter meine ich die einzelnen TabPages, die einzeln angeklickt werden können. Mir geht es also darum:

Ich habe eine TabControl mit mehreren TabPages erstellt, soweit so gut, jedoch will ich auf einigen TabPages mehrere Ebenen von Formularen haben, sprich:

Ich klicke die TabPage "Struktur" an, dort erscheint dann eine bestimmte Struktur beispielsweie in einer TextBox, darunter ist dann ein Button "Struktur auswählen". Wenn ich nun auf diesen Button drücke, soll sich dann die ganze TapPage "Stuktur " in den Hintergrund schieben und im Vordergrund sol ein neues Formular erscheinen, welches das alte überdeckt.

Zur Zeit habe ich zwei Panels, sprich Panel 1 ist die Startseite der Tabpage "Struktur" und Panel2 ist die Form, mit der ich die Struktur auswähle.

Drücke ich nun den Button wird Panel1.visible = false und Panel2.visible = true, also habe ich in einer TabPage zwei Ebenen zum anschauen.

Die Frage ist nun, ob dies nicht irgendwie eleganter zu machen ist.

Vielleicht weiß jemand diesbezüglichen Rat ...

Ich habe was davon gelesen, eine zweite Form in der ersten Form anzuzeigen, weiß abe nicht genaueres ...


Danke
 
also ich weiß ja auch nich ...

du könntest einen neuen TabControl auf der TabPage erzeugen und jeder neuen TabPage den Namen deiner Struktur geben.
Wenn du die TabPages am Ende nicht sehen willst kannste ja ein Label in den Vordergrund legen um die Tabs zu verdecken. :)

Panel, naja is ziemlich unübersichtlich wenn man alles übereinanderlegt
Das selbe gilt für GroupBox, wobei die nen schönen Rahmen hat ;)

Mich würde auch interessieren wie man andere Formen in einer anderen Form darstellt, wurde das nich schon gepostet
Das wäre sicherlich auch die beste Lösung.


Vielleicht kannste auch die selben Elemente mehrfach verwenden, aber ich kenn ja dein Programm nich, also einfach mal rumprobieren.


Grüße

xeEEenon :)
 
Also in einem anderem Forum konnte ich folgendes lesen, vielleicht kann das jemand richtig einordnen und mal erklären:

-----------------------------------------------------------------------------------------
FRAGE:

In Delphi gibt es das TNotebook. Kann mir jemand sagen ob es in C# etwas vergleichbares gibt, quasi ein 'TabControl' ohne Tab's

ANTWORT:

das .NET Framework ist an dieser Stelle flexibler als die VCL, denn über die Controls-Kollektion kann man auch den Inhalt eines anderen Formulars an der gewollten Stelle ein- und ausblenden, wie das folgende Beispiel für C# zeigt:

FormOutlBar aOutlBar = new FormOutlBar();
aOutlBar.FormBorderStyle = FormBorderStyle.None;
aOutlBar.TopLevel = false;
panelOutlookBar.Controls.Add(aOutlBar);
aOutlBar.Show();

Nach demn Show-Aufruf tauchen alle Controls aus dem zweiten Formular aOutlBar im Panel des Hauptformulars auf, die sich später auch wieder abräumen und durch andere ersetzen lassen.
-----------------------------------------------------------------------------------------

Weiß jemand darüber mehr?
 
Das beantwortet doch deine Frage :) ,

den Code kannst du übernehmen, also mach am besten für jede Struktur eine neue Form,

FormOutlBar ist deine neue Form, d.h. du machst eine neue Instanz davon.
Du musst den Borderstyle wie im Beispiel auf "None" setzen, sonst gibts Probs weil du ja nich 2 Titelleisten ( das blaue Ding da oben ;) ) haben willst.

Dann fügst du die Form dem Panel mit .Controls.Add hinzu.
Damit du sie auch siehst, machst du sie mit .Show sichtbar.

Somit hast du die erwünschte Übersicht.

Habs gerade selbst ausprobiert und war sehr überrascht dass es doch so einfach geht :) ...



Grüße

xeEEenon
 
Zuletzt bearbeitet:
Tja, da kannst du mal sehen, wie es ist, wenn man vor einem Wald vor lauter Bäumen steht -- man blickt nichts mehr (sitze wohl schon zu lange vorm Computer (gäähn) ...

Habe es nach deiner Motivation zum zweiten mal ausprobiert (bei ersten mal habe ich das ganze nicht so richtig gecheckt) und es klappt tatsächlich, super Sache, aber

gelingt es dir, die unten liegende Page unsichtbar zu machen?

Zur Erklärung: Ich habe eine TabControl mit einer TabPage erstellt und dort einen Button plazziert, drücke ich nun auf diesen, erscheint die neu angelegte Form auf der Tabpage, jedoch ist der Button noch sichtbar. (ja ich weiß einfach Button unsichtbar machen, aber wenn auf der Tabpage mehrere Elemente sind, wie kann ich diese dann alle unsichtbar machen, dass sie nicht durchscheinen .. sprich, komplette TabPage löschen und an deren Stelle Formular anzeigen ...

Tschau
 
Ich kenn dein Programm nicht, aber alles was auf deiner Form unsichtbar werden soll machste in ne separate Form, über die Verteilung musst du dir selbst im Klaren sein.

angenommen du hast 4 Strukturen, dann machste 4 Formen.

in der Tabpage machste dann ein Panel, in dem alle 4 Formen dargestellt werden und 4 Buttons um diese darzustellen.
Alternativ kannste auch eine Combobox nehmen um die Strukturen auszuwählen um Platz zu sparen.


Ansonsten schick mir einfach mal deinen Code


MfG

xeEEenon
 
Soweit ist das alles klar, und selbst mir mit meinen übermüdeten Augen leicht verständlich und schon ausgetestet worden ...

Ich möchte jedoch versuchen, auf der Tabpage Buttons zu positionieren und diese Tabpage dann mit Hilfe des ADD-Befehls durch ein neues Formular zu ersetzen. Wenn ich dann dieses Formular wieder remove, sollten wieder die Buttons zum Vorschein kommen, also eine TabPage mit einem auswechelbaren Formular)

sprich, das Problem liegt darin, die Form komplett über die TabPage zu legen und diese dabei vollständig dahinter zu verstecken (ist bestimmt nur eine Proberty der Form (wie zum beispiel immer im VOrdergrund)) bin aber bisher noch nicht fündig geworden ...

Aber zermartere dir nicht allzusehr den Kopf ...

Bin dir jedenfalls sehr für deine Anregungen dankbar


Das Alphamännchen sagt Tschüss ...
 
Glaubt ihr nicht dass neue Formen ein wenig Ressourcenverschwenderisch ist? Hier gäbe es auch andere Möglichkeiten -> Panel zum Beispiel. Hier wird wesentlich weniger Speicher etc. veranschlagt und damit sollte das auch hinzukriegen sein. Zumindest sehe ich da eigentlich gar kein Problem. Einfach ein eigenes UserControl bauen.

Ein TabControl nur ohne die entsprechenden Buttons bzw. mit einer eigenen Definition derselben ist ne Sache von ein paar Minuten. Und ist das notwendige Wissen nicht vorhanden wäre es ein sehr gutes Beispiel um es zu erlernen.
 
Aller Anfang ist schwer :) , also ich hab keine Ahnung wie man eigene Usercontrols baut, wär gut wenn mir das jemand erklärt.

Grüße

xeEEenon
 

Neue Beiträge

Zurück