In meinem Code muss ich die Steuerelemente in einer GroupBox durchlaufen und das Steuerelement nur verarbeiten, wenn es eine ComboBox ist. Ich bin mit dem Code:Schleife durch Kontrollen
foreach (System.Windows.Forms.Control grpbxChild in this.gpbx.Controls)
{
if (grpbxChild.GetType().Name.Trim() == "ComboBox")
{
// Process here
}
}
Meine Frage ist: Anstelle den Kontrollen durch alle Schleifen und Verarbeitung nur die Combo-Box ist nur möglich ist, die Kombinationsfelder von der GroupBox zu bekommen? So etwas wie dieses:
foreach (System.Windows.Forms.Control grpbxChild in this.gpbx.Controls.GetControlsOfType(ComboBox))
{
// Process here
}
+1 für die OfType Syntax zu erwähnen, aber die präsentierten „Pseudolösung“ erfordert noch eine Schleife durch alle untergeordneten Steuerelemente. Was das Grundproblem nicht angeht. – Cerebrus
@Cerebrus: Es erfordert keine Schleife, wenn Sie nichts damit tun müssen. Wenn Sie nur die Auflistung von ComboBoxen möchten, können Sie einfach Folgendes tun: Liste list = new Liste (GetControlsOfType (groupBox.Controls)); –
Danke Mehrdad ... das funktioniert !!! Nenne es nicht Pseudolösung. Es ist die Lösung. Sie waren knapp vor der Where-Klausel. Bitte bearbeiten Sie die Antwort, um es hinzuzufügen: öffentliche statische IEnumerable GetControlsOfType (Control.ControlCollection Kontrollen), wo T: Control –