Using control.Visible gibt False zurück, wenn es sich auf einer nicht ausgewählten Registerkarte befindet

Ich habe ein Formular mit 2 Registerkarten. Das Formular wird auf Registerkarte 1 geöffnet. Ich habe einige Steuerelemente, die ich auf Registerkarte 2 überprüfen muss.

Wenn die zu überprüfenden Steuerelemente auf "Nicht sichtbar" eingestellt sind, möchte ich die Überprüfung ignorieren. (d. h., die Steuerelemente wurden vor dem Benutzer ausgeblendet.) Das Problem ist, dass alle Steuerelemente auf Registerkarte 2 Sichtbar = Falsch zurückgeben, da die Registerkarte nicht ausgewählt ist.

Becuase Visible für ein einzelnes Steuerelement gibt False zurück, wenn eine der Visible-Eigenschaften des übergeordneten Steuerelements False ist. Ich kann nicht herausfinden, ob für ein Steuerelement Visible = False im Code festgelegt wurde oder ob Visible = False, da das übergeordnete Registersteuerelement nicht sichtbar ist .

Haben Sie eine Idee, wie ich herausfinden kann, ob ein Steuerelement im Code auf Visible = False gesetzt wurde? Die private "state" -Variable in der Kontrollklasse scheint diese Information zu enthalten, aber ich würde es vorziehen, keine Reflektion zu verwenden ... dies wird langsam und fühlt sich ein bisschen hackig an!

Meine einzige andere Idee ist, dass ich der Control-Klasse meine eigene Eigenschaft hinzufügen muss, um sie auszublenden (es sind Controls, die ich geschrieben habe)
Aber das bedeutet eine Menge Arbeit in all meinen Formularen (ich habe viele Formulare mit verschiedenen Codebits, um einzelne Steuerelemente oder Gruppen von Steuerelementen auszublenden)

Hoffnung das macht Sinn.

Danke, Mike G

Antworten auf die Frage(6)

Ihre Antwort auf die Frage