TabControl

MikeBi

Mitglied
Hallo,

ich habe ein kleines Problem mit dem Tabcontrol. Ich habe auf den verschiedenen Registerkarten viele Controls. Beim Start des Formulars werden je nach Konfiguration einige Controls ausgeblendet. Wenn ich dann alle Controls durchlaufe und feststellen will, ob das Control für den User sichtbar ist (Control.Visble), werden mir leider alle Controls die nicht auf der aktiven TabSheet sind mit Visible= false zurück gegeben.
Wie kann ich nun feststellen, welches Control angezeigt werden würde, wenn das TabSheet aktiv ist ?

Mike
 
Hallo MikeBi,

das mit dem Visible ist klar :)
Ich würde das SelectedIndexChanged Event abfangen und einfach auf den akutellen Index (SelectedIndex) prüfen. So kannst du schonmal deine Tabs unterscheiden und weißt welches gerade angezeigt wird.

Grüße
 
Hallo,

ich weiß schon welches TabSheet aktuell ist. Aber das war nicht die Problemstellung. Sondern heraus zu finden welche Controls nicht angezeigt werden würden.

Mike
 
Hallo,

vielleicht denk ich gerade etwas verkehrt aber du weißt doch schon an deiner Konfiguration welche Controls nicht angezeigt werden.

Gibt es einen bestimmt Grund warum du das nochmal extra prüfen willst? Denn so müsstest du die einzelnen Tabs immer öffnen damit du den richtigen Visible Wert bekommst und ich weiß nicht genau ob man das anders mit den vorhandenen Eigenschaften des TabControls oder TabPage hin kriegt.

Am besten erstellst du dir ein eigenes TabControl oder TabPage mit den zusätzlichen Funktionalitäten wie du es benötigst.

Grüße
 
Halo,
konkret geht es um einen Maschinensteuerung. Dort werden je nach Konfigurartion u.a. verschiede Ein-/und Ausgangszustände angezeigt. Dieses Maschienenzustandsabbild soll z.B. zur Fehlersuche abgespeichert werden. Es sollten aber nur die Daten abgespeichert werden, die die Maschine auch hat. Vielleicht muss ich wirklich die Sache nochmal parallel verwalten, aber das TabControl weiß doch auch irgendwoher, was es anzeigen muß.

Mike
 
Alles klar, dann würde ich eine andere Eigenschaft verwenden. Z.B. (Enabled)
Wie du an die Daten kommst woher das TabControl weiß was es anzeigen muss kann ich dir jetzt leider auch nicht sagen.

Grüße
 
Du solltest nicht die Eigenschaften eines Controls dazu verwenden, um Daten zu speichern. Also auch nicht um herauszufinden ob etwas abgespeichert werden soll oder nicht. Woher kommt denn die Information die dem Control sagt ob es sichtbar sein soll ider nicht? Aus dieser Quelle solltest du dann die Information beziehen ob dein Zustand abgespeichert werden soll oder nicht.
Das heißt im Idealfall hättest du eine Klasse die sowohl dem Control mitteilt, dass es nun (in)visible sein soll und analog der Speicher-Methode sagt ob etwas abgespeichert werden soll oder nicht.
Die Speicher-Methode sollte unabhängig von der Visible-Eigenschaft des Controls sein. Ließ dir dazu zum Beispiel mal das MVVM-Architekturmuster oder MVC durch.
 
Zuletzt bearbeitet:
Zurück