Hallo zusammen,
ich brauche mal wieder ein paar Tipps.
Ich habe mir ein Label Array erstellt:
Label[] myLabel = new Label[70];
Jetzt habe ich ein Design mit 70 bereits erstellen Labels die ich mit dem Array verknüpfen will.
Zu Fuß würde das ganz ja jetzt so aussehen:
myLabel[0]=lbl1;
myLabel[1]=lbl2;
Es muss doch aber bestimmt auch anders gehen, vielleicht mit einer for-Schleife oder ähnlichem? Ich weiß allerdings nicht, wie ich dann die Label hochzähle. Bei dem Array wäre das ja kein Problem.
for (int i = 0; i < myLabel.Length; i++)
{
myLabel[i]=lbl1; //<-- Hier müsste ich anstelle der "1" ja auch irgendwie das Label hochzählen.
}
Wie sieht es mit den Labels aus, könnt ihr mir da weiterhelfen?
Hi,
ich weiß, das mag man nicht hören, aber das schreibt nach einem Designfehler.
Einfachste Lösung wäre die Label gleich in dem Array zu erstellen. Andererseits klingt Label sehr nach Oberflächenlogik. Bei WPF würde ich hier sagen, dass man die am besten nicht per Code direkt anfasst, für WinForms kann ich dazu leider keine Aussage machen.
Hallo,
lies dir mal [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls durch.
Wenn ich jetzt erstmal nur das Label-Array erstellt habe und mich von meinen vorher schon eingefügten Labels im Design verabschiede, wie kann ich die Labels aus dem Array denn sichtbar machen?
Also wie kann ich sie dann in meinem Design sehen?
@felix571
Was genau hast du damit vor?
Klingt für mich auch wie ein ganz falscher Ansatz.
Bitte gib uns mal die Informationen was du mit den Labels machen willst.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Das steht in dem verlinkten Artikel (2. Beitrag, unterer Code: Controls.Add()).
Neben den schon beschriebenen Lösungen wäre auch folgendes denkbar (ist aber eher aus der Sparte 'quick and Dirty' 😉 ):
for (int i = 0; i < myLabel.Length; i++)
{
myLabel[i] = this.Controls["lbl"+(i+1).ToString())];
}
@wcseller
Von solchen Lösungen würde ich in der Regel die Finger lassen.
Wenn die Anzahl der Element nicht passt, knallt es.
Wie gesagt, würde ich wissen welcher Zweck damit umgesetzt werden soll.
Das sieht für mich nach einer sehr fragwürdigen Umsetzung aus und liese sich bestimmt mit einem anderen Ansatz sicherlich besser lösen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Danke für die Antworten.
Ich habe es jetzt so gelöst, dass ich mir mit einer for-Schleife ein Label Array erstelle und dann quasi in jedem Durchgang die Eigenschaften des Labels aufzähle.
Also beispielsweise die Höhe und Breite sowie die Position. Bei der Position rechne ich dann immer + um das Label um Summe X nach rechts zu verschieben usw.