25 Labels auf dem Form, aber nur immer 5 beschreiben

  • VB.NET

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

    25 Labels auf dem Form, aber nur immer 5 beschreiben

    Hallo.

    Hab auf einem Form 25 Label erstellt. Diese sollen aus einer Datei beschrieben werden. Das funktioniert soweit.

    Jedoch hab ich es "kompliziert" bzw. "unschön" gelöst.

    VB.NET-Quellcode

    1. Dim Start As Integer = 0
    2. If Start = 0 then
    3. Label 1-5
    4. Start + 1
    5. else if Start = 1
    6. Label 5-10
    7. .....


    Gibs keine besser möglichkeit das zu "automatisieren" wo ich sage, Label(Start+1).Text Label(Start+2).Text??
    Ich versuch besser zu beschreiben ;)

    Hab 25 Labels auf einer Form.
    Es sollen 5 Labels beschrieben werden von diesen 25.
    Dann wird auf eine Aktion gewartet.
    Danach sollen weiter 5 Labels beschrieben werden.

    Im Moment mach ich das halt per If Abfrage. Und sage dann welche Labels beschrieben werden soll (so wie im dem Beispiel oben).

    Schöner wäre es, ich könnte die Labels frei anwählen, ohne immer Label1.xy schreiben zu müssen.

    Ich hab nun Me.Controls("Label" & Str(Label_Nummer)).Text = Split(0) dafür gefunden.
    Aber hier meckert mir VB an "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.".

    Bin ich im Debug-Mode steht in Split(0) was drin (z.b. Bierbraten).

    Was mache ich falsch?
    Das Str() hat Dir ein Leerzeichen in den Namen reingeblasen. :D

    VB.NET-Quellcode

    1. Dim myLabel As String
    2. For Label_Nummer As Integer = 1 To 5
    3. myLabel = "Label" & Str(Label_Nummer).Trim
    4. Me.Controls(myLabel).Text = Split(0)
    5. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ARGH.
    Ich hab den Fehler gefunden der aus 2 Teilen bestand.
    Der erste war durch RodFromGermany Hilfe gefunden. Danke dafür.

    Der 2. ist, das mein Label auf einem Panel liegt. Und wenn man ein Label auf einem Panel ansprechen möchte, dann kann man wohl nicht ->
    Me.Controls
    schreiben, sondern muss dann ->
    Panel2.Controls
    nehmen.

    Danke für eure Hilfe ;)