String in Form konvertieren
-
Hallo,
ich habe eine ganze Reihe von Panels auf meinem Form, die in der Form "panel1"-"panel10" benannt sind. Diese möchte ich jetzt gerne in einer Schleife ansprechen und dachte mir das folgendermaßen:
for(short i=0; i<3; i++) { string pan = "pan"+Convert.ToString(i); ((Panel)pan).BackColor=Color.Black; }
Das funktioniert leider nicht, ich bekomme folgende Fehlermeldung:
Konvertierung des Typs 'string' zu 'System.Windows.Forms.Panel' nicht möglich.
Wie kann ich es erreichen, diese Steuerelemente innerhalb einer Schleife anzusprechen?
Vielen Dank!
-
foreach(Control c in this.Controls) { if(c is Panel) ((Panel)c).BackColor = Color.Red; }
-
In deinem Form gibt es eine Controls-Auflistung über die du auf deine Panels zu greifen kannst.
foreach ( Control control in myForm.Controls ) { if ( control is System.Windows.Forms.Panel ) { // das sollten dann jetzt deine Panels sein } }
-
Vielen Dank für Eure Antwort, das hat mir schon sehr weitergeholfen. Trotzdem sollte in einem Fall den Namen des Steuerelements, auf das ich zugreifen will, dynamisch zur Laufzeit festlegen können. Ist das auch irgendwie möglich?
-
So?
foreach(Control c in this.Controls) { if(c is Panel && c.Name == "panel1") { ((Panel)c).BackColor = Color.Red; } }