特定のインターフェイスを実装するフォーム内のすべてのコントロールを探したいとします(ITestInterface
としましょう)。私はこの試みている:コントロールチェーン全体のタイプのコントロールを見つけるには?
this.Controls.OfType<ITestInterface>();
を、それは(MSDNに書かれているにもかかわらず - @dasblinkenlight)深い唯一のレベルだGOE、例えば、私は形で、パネルとパネルの内側ITestInterface
コントロールを持っているので、もしそれを見つけることはできません。
どうすればよいですか?
編集: @HansPassantコメントで書いたように、私はハードコード私のパネル名をできたが、しかし、私は一般的な解決策ではなく、特定のフォームに固有のソリューションを必要としています。
ヒント:再帰を使用します。 (Control.Controls/Control.Parent) –
this.Controlsの代わりにpanel1.Controlsを検討してください。 –
@HansPassant - 私は解決策が一般的で、特定のフォームに固有ではないことが必要です。 – Sipo