Es gibt einige Möglichkeiten wie Controls gleichen Typs geholt werden können (zB alle TextBoxen). Hierzu sind genügend Snippets vorhanden.
Zufällig bin ich auf eine LINQ-Erweiterung gestossen welche alle Controls gleichen Typs zurückgibt -> IEnumerable.OfType<T>
Im Code habe ich das ganze in eine Extension-Methode für Controls gepackt.
Ob es Sinn macht die Controls so oder klassisch per Schleife zu holen sei dahingestellt. Weiterer Nachteil ist dass nur die Controls des "befragten" Containers zurückgegeben werden. Hier ist klar die rekursive Schleifenvariante im Vorteil.
public static class ControlExtension
{
public static IEnumerable<T> GetControls<T>(this Control container) where T : Control
{
return container.Controls.OfType<T>();
}
}
1 Kommentare zum Snippet