특정 인터페이스 (예 : ITestInterface
)를 구현하는 양식의 모든 컨트롤을 찾고 싶습니다. 나는이 시도 :전체 컨트롤 체인에서 유형 컨트롤을 찾는 방법은 무엇입니까?
this.Controls.OfType<ITestInterface>();
을하지만 (MSDN에 기록 된 것을에도 불구하고 - @dasblinkenlight) 깊은 하나 개 수준의 GOE 예를 들어, 나는 형태의 패널과 패널 내부 ITestInterface
제어 할 수 있습니다 그래서 만약 , 그것을 찾지 못할 것이다.
어떻게 수행하나요?
편집 : @HansPassant 코멘트에 쓴, 나는 하드 코드 내 패널의 이름은, 그러나, 나는 일반적인 솔루션, 그리고 특정 형태로 특정 솔루션을 필요로 할 수있다.
힌트 : 재귀를 사용하십시오. (Control.Controls/Control.Parent) –
this.Controls 대신 panel1.Control을 고려하십시오. –
@HansPassant - 솔루션이 일반적이고 특정 양식과 관련이 없도록해야합니다. – Sipo