Pictureboxen hintereinander füllen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Otti.

    Pictureboxen hintereinander füllen

    Hey zusammen...
    Dumme Frage, habe drei Pictureboxen und möchte diese hintereinander nach "Button Click" füllen.
    Also erst die 1.Box, erneuter Click dann die 2. Box, bis ich alle drei mit dem selben Bild gefüllt habe.
    Was mach ich falsch?

    VB.NET-Quellcode

    1. For i As Integer = 1 To 3
    2. CType(Me.Controls("PBGewinnbild" & i), PictureBox).Image = Image(My.Resources.Start, i)
    3. Next
    Codefragmente wirbeln durch die Luft …
    Wenn immer nur ein Bild befüllt werden soll, wenn man den Button anklickt, musst Du Deine Zählvariable i außerhalb der Sub, also klassenweit deklarieren, im Button-Click-EventHandler Deine Zeile#2 ausführen und dann i um 1 erhöhen. Keine For-Schleife.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VB.NET-Quellcode

    1. Private i As Integer = 0 'Zählvariable i außerhalb der Sub, also klassenweit deklarieren
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. CType(Me.Controls("PBGewinnbild" & i), PictureBox).Image = Image(My.Resources.Start, i) 'Deine Zeile#2 ausführen
    4. i += 1 'i um 1 erhöhen
    5. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed

    Hey, ja danke allerdings wird gemekert ...

    Quellcode

    1. Image(My.Resources.Start, i)

    Image ist ein Klassentyp und kann nicht
    als Ausdruck verwendet werden.

    Habe parallel noch mal was anderes probiert:
    Klappt leider auch nicht.
    Was ist denn an einer For Schleife schlimm?

    VB.NET-Quellcode

    1. ​Dim pb As PictureBox() = {PBGewinnbild1, PBGewinnbild2, PBGewinnbild3}
    2. Dim Bild = My.Resources.Start
    3. For i As Integer = 0 To 2
    4. If (pb(i) Is Nothing) Then
    5. pb(i).Image = Bild
    6. End If
    7. Next
    Hey, das ist Dein Code, den ich abgeändert habe. Wenn er schon vorher nicht geklappt hat, dann sorry.
    Was an ner For-Schleife schlimm ist? Nix. Nur widerspricht ihre Verwendung Deiner Problembeschreibung. Die For-Schleife ordnet in einem Komplettdurchgang die Bilder den PicBoxes zu. Post#1 spricht aber von "ein Bild per Button-Click".
    Dein jetziger Code ist inhaltlich falsch. If (pb(i) Is Nothing) Then = Wenn die PicBox i nicht existiert, dann
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Jetzt lies bitte nochmal all meine Kommentare zum Thema: Warum die For-Schleife Dir nicht bei Deinem Problem hilft …

    ##########
    @Otti
    Nachdem Du das gemacht hast und Du mit Deinem neuen Code andeutest, dass Du alle PicBoxes auf das gleiche Bild schalten willst, probier es logischerweise so:

    VB.NET-Quellcode

    1. Private i As Integer = 1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. CType(Me.Controls("PBGewinnbild" & i), PictureBox).Image = My.Resources.Start
    4. i += 1
    5. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „VaporiZed“ ()

    Ich hatte Dich zwar im Vorpost noch "angesprochen", damit Du den Edit siehst, aber vielleicht hattest Du es nicht gesehen …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    :) hatte ich auch nicht, sorry. klappt soweit, danke dir.

    @VaporiZed
    Eine Frage hätte ich allerdings noch.
    Sollte ich vor dem 3. Klick, mit befüllen der 3.Box, im Vorfeld die ersten beiden Boxen wieder leeren, wird beim dritten Button Klick das Bild allerdings auch in die 3. Box gesetzt.
    Wie kann man das programmieren das er wieder bei der ersten anfängt?
    Wäre nett wenn mir noch mal helfen könntest

    Schon Klar :D
    i=1

    Danke

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

    Indem Du zum passenden Zeitpunkt (also wenn Du Deine PicBoxBilder änderst) i wieder auf 1 setzt. Das sollte sich eigentlich von allein erschließen.
    Und dass Du auch prüfen solltest, dass i nicht zu weit geht, also dass i bei 3 PicBoxen nicht 4 sein darf, sollte auch klar sein.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.