我正在使用图片框显示图像,并以一秒为间隔进行计时。我试图避免连续两次显示相同的图像,并使用数组列表来执行此操作以避免相同的随机图像紧随其后。
这就是我所做的。没有像我预期的那样工作得很好,最终得到了一个例外。我该如何改进以避免连续两次显示相同的图像?
Random random = new Random();
ArrayList imagesList = new ArrayList();
Image[] images = { imageOne, imageTwo, imageThree, imageFour, imageFive, imageSix, imageSeven };
do
{
try
{
for (int i = 0; i < images.Length; i++)
{
imagesList.Add(images[random.Next(0, 7)]);
while (imagesList.Contains(images[i]))
{
imagesList.Clear();
imagesList.Add(images[random.Next(0, 7)]);
}
picImage.Image = (Image)imagesList[0];
}
Thread.Sleep(1000);
}
catch (IndexOutOfRangeException ind)
{
MessageBox.Show(ind.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception exe)
{
MessageBox.Show(exe.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} while (true);
}