Usar control.Visible retorna False se estiver em uma guia que não está selecionada

Eu tenho um formulário com 2 controles de guia. O formulário é aberto na guia 1. Tenho alguns controles que preciso validar na guia2.

Se os controles que eu quero validar foram definidos como não visíveis, desejo ignorar a validação. (ou seja, os controles foram ocultos do usuário) O problema é que todos os controles da guia 2 retornam Visível = Falso, porque a guia não está selecionada.

Porque Visible em um controle individual retorna False se alguma propriedade Visible do pai for False, não consigo descobrir se um controle foi definido como Visible = False no código ou se Visible = False porque o controle da guia pai não está visível.

Alguma idéia de como posso descobrir se um controle foi definido como Visible = False no código? A variável "state" privada na classe de controle parece conter essas informações, mas eu prefiro não precisar usar reflexão ... isso será lento e parecerá um pouco hacky!

Minha única outra idéia é que vou ter que adicionar minha própria propriedade à classe de controle para ocultá-las (são os controles que eu escrevi)
Mas isso significa muito trabalho em todos os meus formulários (tenho muitos formulários com vários bits de código para ocultar controles individuais ou grupos de controles)

Espero que isso faça sentido.

Obrigado, Mike G

questionAnswers(3)

yourAnswerToTheQuestion