在图片框中显示图像路径的数组(字符串),错误

时间:2014-04-13 23:39:22

标签: c# for-loop

我有这个代码在一个图片框中显示4个图像,但它不起作用,只显示最后一个图像

for (int i = 0; i < 4; i++)
        {
            Bitmap bmp = new Bitmap(array[i]);
            pictureBox.Image = Image.FromFile(array[i]);
            Thread.Sleep(2000);
        }

2 个答案:

答案 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);
    }

另外,在主线程上进行睡眠绝对不是一个好主意,更好的方法是定时器并定期更改这些图像。