In einer Anwendung werden Registerseiteninhalte eines Tab Controls dynamisch aufgebaut. Jede Seite erhält je nach Bedarf unterschiedliche Steuerelementauflistungen zugewiesen. Die Seiten werden nach Bedarf entfernt und neu geladen, was - da immer die Inhalte neu aufzubauen sind - mitunter zeitaufwendig ist. Wie lassen sich die Registerseiten am Besten zwischenspeichern und erneut und insbesondere unmittelbar anzeigen, da ein direktes Ausblenden nur durch ein Entladen möglich ist?
Schau doch mal in diese Diskussion. Hilft dir die dortige Antwort mit der TabControl-Erweiterung, die TabPages disabeln kann, weiter?
Was genau ist denn dein Problem?
Ansonsten geht es so, wenn tabControl1 das TabControl aus deiner Form ist:
TabControl tabZwischenspeicher = new TabControl(); tabZwischenspeicher.TabPages.Add(tabControl1.TabPages[0]);
Damit wird die TabPage aus tabControl1 entfernt und in tabZwischenspeicher aufgehoben. Wenn du ein TabControl als Zwischenspeicher benutzt, dann musst du dich nicht darum kümmern, dass die TagPage evtl. disposed wird, wenn du sie aus dem Anzeige-TabControl herausnimmst.
Zurück ins Anzeige-TabControl bekommst du die TabPage mit
Kannst Du die Registerkarten beibehalten und nur die Inhalte austauschen? Dann könntest Du die Inhalte als UserControls stricken und diese dann jeweils in ein Panel auf die Registerkarte legen. Mit userControl.BringToFront() bzw. userControl.SendToBack() kann man die z-Order verändern. Du könntest also auf jeder Registerkarte soviele UserControls wie gewünscht "stapeln". Das was Du anzeigen möchtest bringt Du mit BringToFront in den Vordergrund.