컨트롤의 Visible 속성이 속성 변경을 통해 설정되었는지 또는 해당 컨트롤에서 Visible 속성을 상속하는지 확인하는 방법을 찾아야합니다. 부모의. 리플렉터를 사용하여 this.GetVisibleCore() 및 this.GetState() 함수가 모두 내부 메서드이기 때문에 호출 할 수 없습니다.컨트롤을 통해 Control.Visible이 설정되었는지 또는 값이 상속되는지 확인하는 방법
위젯 자체가 동적으로 만들어 지므로 각 위젯을 만든 직후에 VisibleChanged 이벤트에 메서드를 연결하지 않으므로이 속성을 모니터링 할 수 있습니다. 해야만한다면, 나는 내가 원하는 것 같지만 좀 더 우아한 것을 찾고 있습니다.
편집
내가 양식을 숨기고을 닫거나 양식을 구축하지만, 숨겨진 그것을 유지하기 위해 갈 때 내가 정말 알고 싶은 것은, 거짓 보이는 어떤 값 형태가 숨겨져 있기 때문에 어떤 값은 거짓 그들은 거짓으로 설정 되었기 때문에. 다시 각 메소드의 각 VisibleChanged 이벤트에 메소드를 첨부하고 싶지 않습니다. 난 그냥 어떻게 든 컨트롤 개체에서 그것을 읽고 싶다.
합니다. Visible 속성이 재정의되었는지 확인하려고합니까? –
아니요 Visible 속성이 설정된시기를 알고 싶습니다. 양식 자체가 숨겨져 있거나 아직 표시되지 않은 경우 모든 컨트롤 표시 속성은 false입니다. 양식이 표시되면 코드의 어딘가에 false를 설정하지 않으면 표시되는 모든 속성이 true로 전환됩니다. 폼을 숨기면 Visible 속성은 false가됩니다. 내가 알고 싶은 것은 컨트롤에 Visible 속성이 설정되어 있는지 여부와 자식으로 할당 된 폼/컨테이너의 표시/숨김 상태에 관계없이 해당 값이 무엇인지 알아 보는 것입니다. – JDMX
아마도 모든 컨트롤을 반복하여 모든 보이는 컨트롤의 배열을 만드는 도우미 함수를 만들 수 있습니다. 그런 다음이 목록을 사용하여로드 된 이후 변경된 내용에 관계없이 양식 컨트롤을 표시하거나 숨길 수 있습니다. 난 당신이 단지 사용자 정의 양식을 표시/숨길 수 있기를 원한다고 가정합니다. – Zachary