For Each-Schleife

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Cr4ckY.

    For Each-Schleife

    Abend,
    ich versuche gerade 10 Panels mit jeweils einem Label in einem FlowLayoutPanel hinzuzufügen, jedoch habe ich ein kleines Problem bei den Labels, mein Code:

    VB.NET-Quellcode

    1. private panelList as new list(of panel)
    2. private labelList as new list(of label)
    3. 'Me_Load
    4. For i as integer = 0 to 9
    5. panelList.add(new panel)
    6. labelList.add(new label)
    7. Next
    8. For each pnl in panelList
    9. FlowLayoutPanel.Controls.Add(pnl)
    10. For each lbl in labelList
    11. lbl.Text = "TestLabel"
    12. pnl.Controls.Add(lbl)
    13. Next
    14. Next


    Es ist nun so, dass zwar 10 Panels erstellt werden, jedoch enthält nur das letzte Panel ein Label..kann mir jemand sagen was an meinem Code falsch ist?
    Sachma, seh ich das falsch?
    Nach meinem Verständnis fügst du jedem Panel 10 Labels hinzu.
    Vielleicht folgender Vorschlag:
    Labellist weglassen.
    In der 1. Schleife das Label dem Panel hinzufügen und anschließend das Panel in die panellist. (Wird ja dann incl. Label gespeichert)
    Dann die For each durchlaufen und die Panels auf das Flowlayout.

    Fiel Fergnügen
    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Ich würde das ganze so machen :)

    VB.NET-Quellcode

    1. For i as integer = 0 to 9
    2. Dim pnlTmp as Panel = new Panel()
    3. Dim lblTmp as Label = new Label()
    4. pnlTmp.[...] = ...
    5. lbl.Name = "..."
    6. pnlTmp.Controls.Add(lblName)
    7. FlowPanel1.Controls.Add(pnlTmp)
    8. Next


    Ich denke so könnte es klappen. Aber mit deinem Code, fügst du wie Vatter schon sagte zu jedem Panel 10 Label hinzu...

    lg.

    LucaWelker
    lg.

    LucaWelker