Ich möchte alle Steuerelemente in meinem Formular finden, die eine bestimmte Schnittstelle implementieren (sagen wir ITestInterface
). Ich habe dies versucht:Wie findet man ein Steuerelement des Typs in der gesamten Steuerungskette?
this.Controls.OfType<ITestInterface>();
aber es GOE ist nur eine Ebene tiefer (ungeachtet dessen, was in MSDN geschrieben - @dasblinkenlight), also wenn zum Beispiel habe ich eine Platte in Form und eine ITestInterface
Steuerung innerhalb des Panels es wird es nicht finden.
Wie geht das?
Edit: Wie @HansPassant in einem Kommentar schrieb, konnte ich hart Code meine Platten Namen, aber ich brauche eine allgemeine Lösung, und nicht um eine spezifische Lösung für eine bestimmte Form.
Hinweis: Rekursion verwenden. (Control.Controls/Control.Parent) –
Betrachten Sie panel1.Controls anstelle von this.Controls –
@HansPassant - Ich brauche die Lösung allgemein und nicht spezifisch für ein bestimmtes Formular. – Sipo