| 

.NET C# Java Javascript Exception

1
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?
05.08.2011
HeMan 101 3
3 Antworten
1
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
tabControl1.TabPages.Insert(0,  tabZwischenspeicher.TabPages[0]);
05.08.2011
KN 1,7k 1 8
KN 1,7k 1 8
0
Vielleicht reicht es ja auch aus die Registerkarte einfach invisible zu setzen.
05.08.2011
CodeSniffer 1,3k 4 9
Genau das geht beim MS-TabControl nicht.
KN 05.08.2011
0
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.
05.08.2011
CodeSniffer 1,3k 4 9

Stelle deine Control-Frage jetzt!