Labels indizieren

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Tomodachi.

    Labels indizieren

    Hallo liebe Leute,

    bin Umsteiger von VB6 und kenne daher die Möglichkeit, Labels zu indizieren, um sie im Code einfacher ansprechen zu können:

    for i = 1 to 5
    Label(i).text = i
    next i

    ... zum Beispiel.

    Aber wie indiziere ich nun in VB.NET Labels???? Hab keinen Eigenschaftenwert gefunden, der etwas vom Index sagt! Wer kann helfen?

    Danke schon mal, Lars.

    VB.NET-Quellcode

    1. Dim Buttonx(5) As Button
    2. For i = 0 To 5
    3. Buttonx(i) = New Button
    4. Buttonx(i).Text = i
    5. Me.Controls.Add(Buttonx(i))
    6. Next i


    Bisher kenne ich nur die Methode die Buttons durch den Code zu erstellen bzw. andere Elemente so kann man sie auch leicht auf
    einen Index verweisen

    //Edit : Sorry kleiner Denkfehler ^^
    Also ist es nur noch möglich über Code????

    Am Anfang war ich begeistert, dass einiges einfacher erscheint, aber nach und nach... ?( ... der Umstieg von VB6 ist wie das Erlernen einer neuen (aber nicht immer besseren) Programmiersprache...
    Also soweit ich weiß ist es wirklich nur noch über Code möglich in Vb 6 konnte man es noch per Element Einstellung Regeln,
    aber es gibt wohl noch eine Möglichkeit, das man das erste Element erstellt dieses Indexiert und dann noch einmal kopieren
    kann so wird es indexiert wiedergegeben , dazu muss man irgendwas im Designer Code ändern , ich werde mal schauen ob
    ich da noch was finde

    //EDIT: Habe eine Lösung gefunden :

    VB.NET-Quellcode

    1. Dim DeineButtons() as Button


    danach in verweißt du deine erstellten Buttons darauf

    VB.NET-Quellcode

    1. DeineButtons = New Button() {Button1, Button2}

    so werden sie in Reihenfolge aufgenommen

    danach kannst du mit ihnen gewöhnlich arbeiten

    VB.NET-Quellcode

    1. DeineButtons(0).text = "Hallo Welt"
    Mir fällt noch eine Möglichkeit ein. Wenn du alle Labels gleich nennst und am Ende einfach nur eine Nummer änderst, könntest du über Form1.Controls(...) gehen:

    VB.NET-Quellcode

    1. For i As Integer = 0 To 5
    2. Dim lab As Label = DirectCast(Me.Controls("Label" & i), Label) 'Me unter Umständen entsprechend anpassen
    3. lab.Text = "Hallo"
    4. Next


    Der Vorteil: Du musst die Labels nicht dynamisch erstellen, sondern kannst weiter mit dem Designer arbeiten.

    Alteran

    EDIT: Button in Label geändert :D
    Hallo!

    Angenommen deine Labels heißen Label1, Label2 usw., dann geht es auch sehr leicht:

    VB.NET-Quellcode

    1. For i = 1 To 5
    2. Me.Controls.Item("Label" & i).Text = i.ToString
    3. Next


    Alteran war da wohl ne Sukunde schneller!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „vanitas-mundi“ ()

    Schönen Dank Euch allen, es hat geklappt :D

    Jetzt möchte ich das Label verschönern...

    Label(i).Font = "Arial" bzw. "Verdana" oder "Microsoft Sans Serif" oder was auch immer akzeptiert VB.NET aber nicht... ;(

    ... was ja über die Eigenschaften denkbar einfach war, einfach einzustellen, aber nun ????

    ...

    ich hoffe, ich bin der Lösung schon ein bisschen näher gekommen:

    Label(i).font = New Font(Verdana,14, FontStyle.Bold)

    aber die Schriftart muss irgendwie anders eingegeben werden!! :wacko:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Tomodachi“ ()