1

コンピューターのフォルダーからランダムな画像を画像ボックスに表示したいのですが、すべての画像を一度だけ表示する必要があります。

これは可能ですか?

これは私が見つけたものです:

Dim rnd As New Random
    Dim alljpgs() As String = IO.Directory.GetFiles("C:\ImageFolder", "*.*", IO.SearchOption.TopDirectoryOnly)
    Dim jpg As New Bitmap(alljpgs(rnd.Next(0, alljpgs.Count - 1)))
    PictureBox1.BackgroundImage = jpg

前もって感謝します!

4

1 に答える 1

0
Dim rnd As New Random
Dim alljpgs() As String = IO.Directory.GetFiles("C:\ImageFolder", "*.*", IO.SearchOption.TopDirectoryOnly)
Dim seenJpgs as new List(of string)
Dim jpg As Bitmap
do
    jpg = New Bitmap(alljpgs(rnd.Next(0, alljpgs.Count - 1)))
    if not seenJpgs.any(function(seenJpg) seenJpg = jpg) then
        PictureBox1.BackgroundImage = jpg
        seenJpgs.add(jpg)
        break
    end if
loop while true

呼び出し間で seenJpgs 変数を永続化する必要があります。これを行う方法は、使用しているテクノロジ (asp.net、wpf、winforms など) に大きく依存しますが、ステートフル アプリの場合、最も簡単な解決策は、これをクラスに配置し、seenJpgs を共有プロパティとして宣言することです。

于 2013-10-25T20:18:56.650 に答える