Array mit Labels

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Sepp Master.

    Array mit Labels

    Hi

    Kann ich irgendwie eine Art Array mit Labels machen? Ich will nämlich je nach Situatuation, andere Labels ansprechen. Aber es wäre ja viel zu umständlich für jede Situation den Code für alle Labels zu schreiben.
    Ich müsste also vorher irgendwie abfragen welche Situation gegenwärtig ist, und dann einer Variable (z.B. intZahl) einen Wert zuweisen.
    Dann müsste ich nur einmal den Code schreiben und nicht für jedes Label einzeln.
    Dann müsste man irgendwie sowas schreiben:

    VB.NET-Quellcode

    1. IntZahl = 2
    2. lblTest(intZahl).text = strVariable


    anstatt sowas:

    VB.NET-Quellcode

    1. If...Then lblTest1.text=strVariable
    2. If...Then lblTest2.text=strVariable
    3. If...Then lblTest3.text=strVariable


    Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen!


    edit: oder ist es irgendwie möglich das so zu schreiben?:

    VB.NET-Quellcode

    1. lblTest + intZahl.text=strVariable


    mit dem + gehts natürlich nicht :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Sepp Master“ ()

    Hey,
    ich denke du musst die Arrays wie normale Arrays definieren, nur dass hier halt keine "normalen" Variablen vorkommen.
    Ich veranschauliche es mal:

    VB.NET-Quellcode

    1. Dim array(10) As New System.Windows.Forms.Label

    und dann halt über die Indexe ansprechen.

    Und dazu kannst du ja auch ne Variable benutzen.

    So würde ich es mir zumindest vorstellen.

    lg.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „martinustreveri“ ()

    hmm schwer mein problem zu erklären aber ich glaube das hilft nicht

    kann man das nicht irgendwie so schreiben?

    VB.NET-Quellcode

    1. labelTest+intzahl .text="blabla"


    das mit dem array war vielleicht bissel falsch ausgedrückt von mir ;)
    Lol,
    Warum erstellst du nicht einfach die Labels ^^??

    VB.NET-Quellcode

    1. Dim count_y As Integer = 10'anfangsposition
    2. For Each item As String In ListBox1.Items
    3. Dim create_labels As New Label
    4. count_y += 10
    5. create_labels.Location = New Point(10, count_y)
    6. Me.Controls.Add(create_labels)
    7. Next


    mfg Tim;)
    also das will ich machen:

    Ich habe eine Tabelle mit mehreren Zeilen.
    Ich will in einer Textdatei abspeichern welche Zeilen schon belegt sind und womit sie belegt sind.
    Dann soll das Programm, wenn eine neue Zeile beschrieben werden soll, automatisch die nächste leere Zeile beschreiben.

    Wenn man das irgendwie mit dem

    VB.NET-Quellcode

    1. labelTest+intZahl .text="blabla"

    machen könnte, müsste ich na nur die Variable intZahl immer neu abspeichern, und dann bei einer Neuen Zeile +1 Addieren.

    versteht ihr mein Problem?
    hmm damit bin ich jetzt bissel überfordert^^ kannst du mir mal ein codebeispiel geben?

    und kann man es so machen, dass ich in eine textdatei abspeichere, in welches label das geschrieben wurde? damit ich die verschiedenen inhalte abspeichern kann und sie beim neustart des programms wieder im selben label stehen.
    Zum letzteren:

    VB.NET-Quellcode

    1. Sub Speichern(ByVal path As String)
    2. Dim strw As New IO.StreamWriter(New IO.FileStream(path, IO.FileMode.Create))
    3. For Each ct As Control In Me.Controls
    4. If TypeOf (ct) Is TextBox Then
    5. strw.WriteLine(ct.Name & "=" & DirectCast(ct, TextBox).Text)
    6. End If
    7. Next
    8. strw.Close()
    9. End Sub
    10. Sub Laden(ByVal path As String)
    11. For Each line As String In IO.File.ReadAllLines(path)
    12. DirectCast(Me.Controls.Find(Split(line, "=")(0), True)(0), TextBox).Text = Split(line, "=")(1)
    13. Next
    14. End Sub