Laden...

Label Array mit vorhandenen Labels verknüpfen

Erstellt von felix571 vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.440 Views
F
felix571 Themenstarter:in
13 Beiträge seit 2017
vor 7 Jahren
Label Array mit vorhandenen Labels verknüpfen

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?

P
441 Beiträge seit 2014
vor 7 Jahren

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.

F
felix571 Themenstarter:in
13 Beiträge seit 2017
vor 7 Jahren

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?

T
2.224 Beiträge seit 2008
vor 7 Jahren

@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.

4.940 Beiträge seit 2008
vor 7 Jahren

Das steht in dem verlinkten Artikel (2. Beitrag, unterer Code: Controls.Add()).

W
198 Beiträge seit 2008
vor 7 Jahren

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())]; 
}
T
2.224 Beiträge seit 2008
vor 7 Jahren

@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.

F
felix571 Themenstarter:in
13 Beiträge seit 2017
vor 7 Jahren

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.