Public Class Form1 Dim filePointer As IEnumerator(Of String) Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown '▼マイピクチャーフォルダーの直下にある 拡張子が jpg のファイルのパスの一覧を取得します。 Dim imageFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) Dim fileNames As New List(Of String)(IO.Directory.GetFiles(imageFolder, "*.jpg")) '▼一覧の画像を指し示すポインター(列挙子)を取得して、最初の画像を表示します。 filePointer = fileNames.GetEnumerator() ShowNextImage() 'タイマー起動。以降は 3秒ごとに次の画像を表示します。 Timer1.Interval = 3000 Timer1.Enabled = True End Sub ''' <summary> ''' filePointerの次の画像を表示します。次の画像がない場合、最初の画像を表示します。 ''' ファイルが1つもない場合はエラーになります。 ''' </summary> Private Sub ShowNextImage() If filePointer.MoveNext = False Then filePointer.Reset() filePointer.MoveNext() End If Me.BackgroundImage = Image.FromFile(filePointer.Current) End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick ShowNextImage() End Sub End Class
Public Class Form1 Dim filePointer As IEnumerator(Of Image) Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown '▼マイピクチャーフォルダーの直下にある 拡張子が jpg のファイルの画像の一覧を取得します。 Dim imageFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) Dim images As New List(Of Image) For Each fileName As String In IO.Directory.GetFiles(imageFolder, "*.jpg") images.Add(Image.FromFile(fileName)) Next '▼一覧の画像を指し示すポインター(列挙子)を取得して、最初の画像を表示します。 filePointer = images.GetEnumerator() ShowNextImage() 'タイマー起動。以降は 3秒ごとに次の画像を表示します。 Timer1.Interval = 3000 Timer1.Enabled = True End Sub ''' <summary> ''' filePointerの次の画像を表示します。次の画像がない場合、最初の画像を表示します。 ''' ファイルが1つもない場合はエラーになります。 ''' </summary> Private Sub ShowNextImage() If filePointer.MoveNext = False Then filePointer.Reset() filePointer.MoveNext() End If Me.BackgroundImage = filePointer.Current End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick ShowNextImage() End Sub End Class