使用Timer c#在PictureBox中更改图像

时间:2018-05-06 18:56:56

标签: c#

我正在尝试弄清楚如何更改包含要在PictureBox上显示的图像的文件夹中的图像。

我要做的是,在计时器中给定的时间间隔后,PictureBox中的图像会发生变化。

我有我的代码,但它似乎不起作用,因为它显示第一个图像后,它不会改变。我可以随意纠正我的错误。感谢您的帮助和建议。

public void playImage()
{
    int counter = i + 1;
    string[] images = Directory.GetFiles(@"C:\Users\Documents\Visual Studio 2008\Projects\UI\UI\bin\\debugIMAGES");

    if (counter > images.Length - 1);
        counter = 0;

    pictureBox1.Image = Image.FromFile(images[counter]);
}

1 个答案:

答案 0 :(得分:0)

你可以制作你的图像列表和计数器全局变量,然后在每个计时器刻度上使用计数器从列表中获取img并递增它。

因此,您将列表和计数器声明为全局

string[] imges = null;
int counter = 0;

然后在Form_Load事件上设置计时器并从目录

中读取imges
private void Form9_Load(object sender, EventArgs e)
{
    imges = Directory.GetFiles(@"G:\Pics");
    Timer T = new Timer();
    T.Interval = 500;
    T.Tick += new EventHandler(PlayTime);
    T.Start();
}

然后在计时器Tick事件上你改变了这样的图片:

void PlayTime(object sender, EventArgs e)
{

    // pictureBox1.Image = Image.FromFile(imges[counter++]);
    pictureBox1.ImageLocation = imges[counter++]; // better to use it this way.
    if (counter >= imges.Length) counter = 0; // Handling out of Bounds
}