在VB.NET中只显示文件夹中的随机图像一次?

时间:2013-10-25 20:05:31

标签: image

我希望计算机中某个文件夹中的随机图片能够显示在图片框中,但每张图片必须只显示一次

这可能吗?

这是我设法找到的:

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

提前致谢!

1 个答案:

答案 0 :(得分: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等),但如果您在有状态的应用程序中最简单的解决方案是将其放在一个类中并将seeJpgs声明为共享属性。 / p>