1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Durchnummerierte lables mit text füllen

Discussion in 'Programmieren' started by StepsK, Nov 13, 2012.

Thread Status:
Not open for further replies.
  1. StepsK

    StepsK ROM

    Hi Gemeinde,

    Es handelt sich bei der Programmierung um VB Express 2008, hatte ich dummerle doch vergessen LOL

    ich hab hier eine form mit 4 lables.

    lbl_rand_1
    lbl_rand_2
    lbl_rand_3
    lbl_rand_4

    die jeweils mit einer Zufallszahl zwischen 1 und 6 gefüllt werden sollen.
    Ich habe versucht das ganze mit einer Schleife zu bewerkstelligen, ich bekomme aber immer einen Syntaxfehler :-(

    ------- Codeschnippsel -------------------

    Private Sub btn_answer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_answer.Click

    Dim x As Integer = 1


    While x < 6

    i = vorgabe.Next(1, 7) 'das funktioniert wenn man
    ein lable direkt anspricht

    lbl_rand_ & x & .Text = i 'hier baue ich zusammen...
    geht aber so nich :-(
    x = x + 1

    End While

    End Sub

    ------------------------------------------------------------------------------------------------------

    Wo ist bitte wieder mal mein denkfehler?!?

    Bitte um schnelle Schläge auf den Hinterkopf, soll ja helfen :-)

    Gruß Stephan
     
    Last edited: Nov 13, 2012
  2. Urs2

    Urs2 Megabyte

    Hallo Stephan

    Vielleicht so, wie in früheren VBs >

    anstatt
    lbl_rand_ & x & .Text

    so
    "lbl_rand_" & x & ".Text"

    Das wird dann ein String >> testen >> vielleicht zuerst umwandeln, damit es als Objekt erkannt wird...

    Gruss Urs
     
  3. StepsK

    StepsK ROM

    Leider nein, so bekomme ich einfach nur einen syntaxfehler
    :bahnhof:
     
  4. Urs2

    Urs2 Megabyte

    Es gibt 2 Fehlermöglichkeiten > beim Concatenate und dann bei Zuweisen eines Wertes an den String(!). Du musst die Zeile teilen um den Fehler zu finden.

    Dein & akzeptiert vermutlich nur Strings, ersetze die 2 & durch 2 +, vielleicht geht es dann...
    ...oder das Integer x in einen String wandeln mit CStr(x)

    Der so erhaltene String soll jetzt den Wert i erhalten... das geht natürlich nicht.
    Ob man den String mit CObj(String) umwandeln kann... ich weiss es nicht...
    ...sonst alle Labels abfragen ob sie den richtigen Namen haben und i dem richtigen Label zuweisen.


    Die neueren VB-Versionen kenne ich nicht... andere müssten da mehr wissen...

    Gruss Urs
     
    Last edited: Nov 14, 2012
  5. VB-Coder

    VB-Coder Megabyte

    Du hast einige Fehler in deinem Denken.

    1. Fehler:

    Du hast 4 Labels angelegt
    lbl_rand_1 bis lbl_rand_4

    durchläufst aber die Schleife 5 mal
    While x < 6

    das hätte zur Folge (wenn dein Vorhaben mit dem Code funktionieren würde, was es nicht tun kann), dass beim 5. Durchlauf aus lbl_rand_ & x & .Text dann lbl_rand_5 .Text würde. Da das Label aber nicht existiert würde dies eine erneute Fehlermeldung verursachen.

    2. Fehler: Du kannst die Labelnamen nicht so zusammen setzen wie du das versucht hast. Korrekt müsste der Aufbau so aussehen:

    Code:
    Dim x As Integer = 1
            While x < 5
                Dim aktlabel As String
                aktlabel = "lbl_rand_" & x
                Me.Controls(aktlabel).Text = "Das ist Label Nummer " & x
                x = x + 1
            End While
    
    Hoffe das hilft dir weiter.

    Gruß VB-Coder

    Edit sagt: und fürs nächste mal wäre die Fehlermeldung zu posten auch nicht das schlechteste. Da steht nämlich meist drin, wo der Syntaxfehler verursacht wurde. ;)
     
    Last edited: Nov 15, 2012
Thread Status:
Not open for further replies.

Share This Page