Hallo liebe Community,
ich möchte für ein Projekt eine SlideShow / Diashow machen, dazu greife ich auf einen Ordner zu aus dem Die Bilder geladen werden.
Das funktioniert soweit auch ganz gut.
Jetzt zu meiner Frage / Problem.
In diesem Verzeichnis kommen wärend die SlideShow / Diashow läuft immer wieder neue Bilder hinzu, diese sollen automatisch eingebunden und angezeigt werden.
Bisher musste ich das Programm neu starten, damit auch die neuen Bilder angezeigt werden.
Der bisherige Code dazu:
Ich hoffe ihr könnt mir helfen
Vielen Dank.
ich möchte für ein Projekt eine SlideShow / Diashow machen, dazu greife ich auf einen Ordner zu aus dem Die Bilder geladen werden.
Das funktioniert soweit auch ganz gut.
Jetzt zu meiner Frage / Problem.
In diesem Verzeichnis kommen wärend die SlideShow / Diashow läuft immer wieder neue Bilder hinzu, diese sollen automatisch eingebunden und angezeigt werden.
Bisher musste ich das Programm neu starten, damit auch die neuen Bilder angezeigt werden.
Der bisherige Code dazu:
VB.NET-Quellcode
- ' http://www.authorcode.com/create-image-slide-show-in-vb-net/
- Public Class Form1
- Private IsFullScreen As Boolean = False
- Private ImageIndex As Integer = -1
- Private ImageDir As IO.FileInfo()
- Private frm As Form
- Private FullSizePic As PictureBox
- Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
- If dlg.ShowDialog = DialogResult.OK Then
- 'AuthorCodeImageGalleryVB1.Directorypath = dlg.SelectedPath
- TextBox1.Text = dlg.SelectedPath
- End If
- End Sub
- Private Sub btnSlideShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSlideShow.Click
- If TextBox1.Text <> "" Then
- Dim di As New IO.DirectoryInfo(TextBox1.Text)
- ImageDir = di.GetFiles("*.jpg").Concat(di.GetFiles("*.bmp")).Concat(di.GetFiles("*.png")).Concat(di.GetFiles("*.gif")).ToArray
- 'Dim dra As IO.FileInfo
- frm = New Form
- frm.Name = "frm"
- FullSizePic = New PictureBox
- FullSizePic.Dock = DockStyle.Fill
- FullSizePic.BackColor = Color.Black
- FullSizePic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
- frm.Controls.Add(FullSizePic)
- AddHandler frm.KeyDown, AddressOf frm_keydown
- frm.Show()
- Timer1.Enabled = True
- EnterFullScreen(frm)
- GetnextImage()
- End If
- End Sub
- Private Sub GetnextImage()
- If Not ImageDir Is Nothing Then
- If ImageIndex < ImageDir.Length - 1 Then
- ImageIndex += 1
- FullSizePic.ImageLocation = ImageDir(ImageIndex).FullName
- ElseIf ImageIndex = ImageDir.Length - 1 Then
- ImageIndex = 0
- FullSizePic.ImageLocation = ImageDir(ImageIndex).FullName
- End If
- End If
- End Sub
- Public Sub LeaveFullScreen(ByVal targetForm As Form)
- If IsFullScreen Then
- ' Restore the original Window state.
- ' Uncomment the code if you does not want to close the slide show.
- 'targetForm.WindowState = FormWindowState.Normal
- ' targetForm.FormBorderStyle = FormBorderStyle.None
- ' targetForm.TopMost = topMost
- 'targetForm.Bounds = bounds
- IsFullScreen = False
- '
- Timer1.Enabled = False
- targetForm.Close()
- End If
- End Sub
- Public Sub EnterFullScreen(ByVal targetForm As Form)
- If Not IsFullScreen Then
- targetForm.WindowState = FormWindowState.Maximized
- targetForm.FormBorderStyle = FormBorderStyle.Sizable
- targetForm.TopMost = True
- targetForm.Bounds = Screen.GetBounds(targetForm)
- IsFullScreen = True
- End If
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- GetnextImage()
- End Sub
- Private Sub frm_keydown()
- LeaveFullScreen(frm)
- End Sub
- End Class
Ich hoffe ihr könnt mir helfen
Vielen Dank.