Frage von L8u7476, 56

VB zufällige Bilder?

Hallo unzwar habe ich 10 Bilder. Da soll jeweils wenn ich auf den Button klicke ein zufälliges Bild von den 10 Bildern in einer Picturebox erscheinen. Wie mache ich das?

Antwort
von safur, 44

Leg die Bilder/Pfade in ein Array.
Hol dir eine Randomzahl bis 10
https://msdn.microsoft.com/de-de/library/f7s023d2(v=vs.90).aspx
Greife auf das Element zu und setze es als Quelle

Fertig

Kommentar von L8u7476 ,

ok danke....aber würde das auch theoretisch so irgendwie gehen?:

Dim random As New System.Random

PictureBox1.Image = My.Resources(random.Next(1, 20))

Kommentar von L8u7476 ,

also natürlich ohne die zahlen

Kommentar von L8u7476 ,

Also besser gesagt....Ich möchte in meinem Programm beim Starten in einer PictureBox ein Bild
anzeigen lasse, was aber nicht immer das gleiche ist. Ich habe z.B. 10
Bilder in den Ressourcen und will nun per Zufallsgenerator eins davon
anzeigen lassen.

Kommentar von safur ,

Entweder stehe ich auf dem Schlauch oder verstehe ich dein Problem an der von mir beschriebenen Lösung nicht :-)

Du könntest dir ein Array von My.Resources bauen :-)
dim Images = {My.Resources.bild1, My.Resources.bild2, ...}

Wo ist der Vorteil?

Du kannst doch im Form-Load oder Initialize - ich weiß nicht in welchem VB du unterwegs bist - das Array mit den Pfaden bauen. Dann holt dein Random ein Array-Element von 0-9 und setzt das in die PictureBox.

Kommentar von L8u7476 ,

Aso ok das verstehe ich...Aber wenn ich jetzt theoretisch alle 50 Bilder in die Klammer setzen oder?

Kommentar von safur ,

Mir erschließt sich der Sinn noch nicht so ganz.

Weshalb willst du die Kurve über My.Resources nehmen?
Bist du mit VB.NET unterwegs? Da kann man die Resources vom Projekt recht komfortabel verwalten.

VB:
Ich würde meine 50 Bilder in einen Ordner knallen.
Dann mache ich mir eine For-Schleife

(Ich schreibe das ungetestet!!)

dim sBilder as String()    'Pfad

For i=0 to 49
     Redim Preserve sBilder(i)
     sBilder= "C:\Bilder\" & i & ".jpg"
next

Da sind jetzt die Pfade drin. Deine Picture-Box hat ein Property wo du den Pfad angeben kannst, wenn ich mich richtig erinnere.

Jetzt machst du den Random 0 bis 49, es liefert dir x

sBilder(x)  'Da steht der Pfad nun drin den du darstellen möchtest.

Kommentar von PWolff ,

Einfacher geht es mit

sBilder = System.IO.Directory.GetFiles("C:\Bilder", "*.jpg")
Kommentar von safur ,

Klingt nach .NET

Kommentar von L8u7476 ,

Was bedeutet denn in dem Fall sBilder?

Kommentar von safur ,

Das Array der Pfade :)

Kommentar von L8u7476 ,

Ok dankeschön und wie erzeuge ich die jetzt in eine Picturebox. Weil so erzeige ich die Bilder ja nur oder?

Kommentar von L8u7476 ,

?:)

Keine passende Antwort gefunden?

Fragen Sie die Community