| 

.NET C# Java Javascript Exception

4
Visible- und Show- und Hide-Methoden funktionieren nicht beim Windows-Forms-Registersteuerelement und deren untergeordneten Registerseiten. Ein Ausblenden ist nur über die Methoden Remove oder RemoveAt und ein Hinzufügen über Add und Insert möglich, wobei initialisierte Seiteninhalte verloren gehen, was in meiner Anwendung allerdings unproblematisch ist, da die Inhalte ohnehin automatisiert beim Laden aufbereitet werden. Problematisch ist allerdings, das die Reihenfolge auch bei den Index-basierten Methoden mitunter durcheinander kommt. Werden wechselweise mehrerer Seiten entfernt, dann wieder einzelne Seiten hinzugefügt, stimmt die ursprünglich festgelegte Reihenfolge nicht mehr mit der Ausgangssituation überein. Ich helfe mir jetzt damit, immer alle Seiten zu entfernen und dann alle anzuzeigenden Seiten neu anzufügen. Vielleicht gibt es dafür aber einen besseren Weg oder wer kennt ein entsprechendes Control, das flexibler bei der Registerseitenverwaltung ist?
News:
03.08.2011
HeMan 101 3
2 Antworten
2
Ich hatte das Problem auch mal. Damals habe ich in meiner Form ein Registersteuerelement gehalten, das nicht zu den Controls der Form gehörte. Ich habe die Registerseite, die nicht mehr sichtbar sein sollte, dann diesem "Background-Element" hinzugefügt. Sie wurde aus dann dem Haupt-Registersteuerelement herausgenommen, aber die Inhalte blieben trotzdem erhalten. Wenn die Registerseite wieder sichtbar sein sollte, habe ich sie wieder dem Haupt-Registersteuerelement hinzugefügt. Ist eine etwas merkwürdige Konstruktion, aber hat funktioniert.
Wie man Steuerseiten aus dem Registersteuerelement einfügt, kannst du in der designer.cs-Datei sehen. Dann weißt du auch, wie das rausnehmen geht.

Ansonsten gibt es natürlich Komponenten, die sowas können. Z.B. die können Infragistics-Controls die Tabs invisible schalten, und Teleric-Controls die Tabs (die dort Pages heißen) disabled. Aber sowohl Infragistics als auch die Telerics sind kostenpflichtig. Kostenlose Komponenten kenne ich nicht.
03.08.2011
KN 1,7k 1 8
KN 1,7k 1 8
Wozu ein eigenes Registerelement? Würde es nicht reichen, die versteckten Registerseiten z.B. in einem Dictionary zwischenzulagern?
puls200 03.08.2011
Hatte ich damals versucht, und es ging nicht. ich weiß nicht mehr warum, ist schon eine Weile her. Ich benutze das Background-Registersteuerelement sozusagen anstatt des Dictionarys.
KN 03.08.2011
1
ich habe es eben kurz ausprobiert - funktioniert auch mit einem Dictionary. Man muss nur aufpassen dass das control nicht aus Versehen disposed wird.
puls200 03.08.2011
Das ist ja praktischer, wenn es so geht. Wie schon gesagt, ich weiß nicht mehr, warum ich es damals so gemacht habe, aber es hatte einen richtigen Grund. Jedenfalls heißt das Zauberwort "Zwischenlagern der Registerseiten".
KN 03.08.2011
0
Ich habe hier noch etwas gefunden, eine Erweiterung des MS-TabControls, die Tabpages disabled setzen kann. Ausprobiert, es geht. Das Enabled-Property der TabPages wird dir zwar nicht im Intelligence angezeigt, aber wenn du es benutzt, meckert der Compiler nicht.
04.08.2011
KN 1,7k 1 8
KN 1,7k 1 8

Stelle deine Controls-Frage jetzt!