Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 防止随机生成的图片连续出现两次_.net_Vb.net - Fatal编程技术网

.net 防止随机生成的图片连续出现两次

.net 防止随机生成的图片连续出现两次,.net,vb.net,.net,Vb.net,我有一个picturebox(“piturebox1”)和一个带有四张图片的imagelist(“imagelist1”)。我希望每2秒随机更改一次,我不希望同一张图片连续出现两次 我目前的代码是: Dim Pic As Integer Dim rand As New Random Pic = rand.Next(0, ImageList1.Images.Count) PictureBox1.Image = ImageList1.Images(Pic) 由

我有一个picturebox(“piturebox1”)和一个带有四张图片的imagelist(“imagelist1”)。我希望每2秒随机更改一次,我不希望同一张图片连续出现两次

我目前的代码是:

    Dim Pic As Integer

    Dim rand As New Random

    Pic = rand.Next(0, ImageList1.Images.Count)

    PictureBox1.Image = ImageList1.Images(Pic)

由于您只有四张图片,而洗牌而不是随机选择通常是此类问题的首选解决方案,如果您想显示图片超过8秒,这对您没有多大好处。在这种情况下,您最好继续选择非当前图片的随机图片:

' do not repeat this part....
Dim Pic As Integer = -1, LastSelected As Integer = -1
Dim rand As New Random



While Pic = LastSelected
    Pic = rand.Next(0, ImageList1.Images.Count)
Loop

PictureBox1.Image = ImageList1.Images(Pic)
' Wait for 2 seconds, rinse, repeat

“随机”包括图像连续出现两次的可能性。甚至更经常。也许你真正想要的是一个混乱的列表?你应该包括你的代码。听起来,在切换到下一张图片之前,您必须检查一下当前图片的内容。请阅读并拍摄照片。你需要做一些研究,自己尝试一些东西;这不是代码编写服务或教程站点/使用计时器。不要多次初始化Random。不要使用ImageList,始终支持(图像的)列表。谷歌“vb.net随机洗牌”取得成功。