我有这个代码在一个图片框中显示4个图像,但它不起作用,只显示最后一个图像
for (int i = 0; i < 4; i++)
{
Bitmap bmp = new Bitmap(array[i]);
pictureBox.Image = Image.FromFile(array[i]);
Thread.Sleep(2000);
}
答案 0 :(得分:1)
使用Timer
,例如System.Windows.Forms.Timer
(如果这是WinForms
),来执行您的代码。将Interval
设置为2000毫秒,然后在其中更改pictureBox.Image
。
你现在获得它的方式,你将UI线程锁定2秒,然后再次更改图像。除了明显冻结的应用程序8秒钟之外,用户不会看到任何内容,然后他们会看到最后一张图片。
答案 1 :(得分:0)
您需要在睡眠或主线程被阻止且界面不会更新之前更新您的界面:
for (int i = 0; i < 4; i++)
{
Bitmap bmp = new Bitmap(array[i]);
pictureBox.Image = Image.FromFile(array[i]);
pictureBox.Refresh();
Thread.Sleep(2000);
}
另外,在主线程上进行睡眠绝对不是一个好主意,更好的方法是定时器并定期更改这些图像。