mehrere verschiedene labels in einer forschleife ansprechen
-
hallo
kann man wenn man mehrere labels hat (z.B. label1, label2, label3 und so weiter) durch ein for scheife eins nach dem anderen ansprechen?z.B.
for(int i=0; i<3; i++){ "i. label".text = "bla"; }
ich hoff ihr versteht wie ich das mein.
gruß sascha
-
Okay.
Das solltest du mit einer if Abfrage machen.
Ich denke nämlich nicht dass das so geht.
Hoffe ich habe jetzt keinen Blödsinn erzählt^^
-
du hast mein problem richtig erkannt.
das mit if abfrage hab ich mir auch schon überlegt, da aber die ausgabe recht ähnlich ist wollte ich es in einer for schleife machen. denn dann ist der aufwand nicht so groß und der code bleibt übersichtlich.
-
Ich habe es mit einer for Schleife nicht hinbekommen.
Mach es am besten mit einer if Bedingung.
Wie willst du das überhaupt machen?
Das das mit einem Button abgefragt wird?
Dann könntest du nämlich gleich alle Label beschriften weil das so schnell geht das man garnicht sieht das da iwas ist
-
Label labels[3]; for ( int i=0; i<3; ++i ) labels[i].text = "bla";
?
-
hi sammle deine labels doch in einer Liste oder Array, wenn du sie erzeugst
und geh die dann einfach durch.oder
du gehst in deinen Formular über den Controls Eigenschaft
musst du dann halt auswerten ob du ein Label in der Hand hast
-
foreach(Label label in form.Controls) { label.Text = "blör"; }
-
Gab das nich problme, wenn nicht-label controls vorhanden sind?
Es gab irgendnen grund, warum ichs immer so gemacht habe:foreach( Control c in form.Controls) { Label l = c as Label; if( l != null) { // hier der code } }
-
Gab das nich problme, wenn nicht-label controls vorhanden sind?
Jap, es fliegt Dir sonst mit einer InvalidCastException um die Ohren wenns kein Label ist.
-
Wenn die Labels enum-Typen sind, solltest du sie mit 0... n ansprechen können. Intern werden Enum-Typen mit 0... n als int (?) gespeichert.
Foreach erlaubt soweit ich weiß keine Schreibzugriffe!
Statt {label1,label2,... labeln} wäre ja dann auch ein array logischer:
int[] label = int[5];
Pascal