VB.net - Picturebox Klick -> Bilder aus Ordner durchblättern?

2 Antworten

Ich glaube nicht.

Am einfachsten wäre es wohl, bei der Initialisierung einen Array mit den Pfaden eines jeden Bilds (als String) zu erstellen und dann bei jedem Click-Event einen Index weiter zu gehen.

Dann müsstest du noch z.B. abfangen, was passiert, wenn zwischenzeitlich eine Datei gelöscht wird (sonst unbehandelte Ausnahme) etc.

Woher ich das weiß:Hobby

Die Antwort von glasair ist FALSCH!

Erstelle eine neue Form.

Platziere darauf

  • Button1
  • TextBox1
  • ListBox1
  • FolderBrowserDialog1
  • PictureBox1

Bild zum Beitrag

Hier der Code:

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
   With FolderBrowserDialog1()
     Dim ant As DialogResult = .ShowDialog
     ListBox1.Items.Clear()
     TextBox1.Text = .SelectedPath
     ListBox1.Items.AddRange(FileList(TextBox1.Text))
   End With
 End Sub

 Function FileList(ByVal Path As String) As String()
   Dim F() As String
   F = IO.Directory.GetFiles(Path)
   Return F
 End Function

 Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
   PictureBox1.Load(ListBox1.SelectedItem)
 End Sub

Viel Spaß!

Gruß

Horst

 - (Computer, Technik, Internet)
IchMalWiederXY  18.07.2018, 22:24

So ähnlich habe ich dies auch gelöst. Habe noch einen Timer für automatischen Wechsel einer einstellbaren Zeit spendiert. Dia Show Funktion.

0
xMarkusHx 
Fragesteller
 26.07.2018, 23:32

Vielen Dank, aber geht noch kürzer:

  1. Dim CurrentPictureIndex As Integer = 0
  2. Dim fzgbilder() As String = IO.Directory.GetFiles("C:\Users\XXX\Desktop\Neuer Ordner\", "*.jpg", IO.SearchOption.TopDirectoryOnly)
  3. Dim jpg As New Bitmap(fzgbilder(fzgbilder.Count - 1))
  4. Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
  5. CurrentPictureIndex = (CurrentPictureIndex + 1) Mod fzgbilder.Count()
  6. PictureBox1.ImageLocation = fzgbilder(CurrentPictureIndex)
  7. PictureBox1.Image = jpg
  8. End Sub
0