Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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
C# 使用计时器c更改PictureBox中的图像#_C# - Fatal编程技术网

C# 使用计时器c更改PictureBox中的图像#

C# 使用计时器c更改PictureBox中的图像#,c#,C#,我正在试图找出如何从包含要显示在PictureBox上的图像的文件夹中更改图像 我想做的是,在计时器中给定的时间间隔后,PictureBox中的图像将改变 我有我的代码,但它似乎不起作用,因为在它显示第一个图像后,它不会改变。请随时纠正我做错了什么。谢谢你的帮助和建议 public void playImage() { int counter = i + 1; string[] images = Directory.GetFiles(@"C:\Users\Documents\Vi

我正在试图找出如何从包含要显示在
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]);
}

您可以创建图像和计数器全局变量的列表,然后在每个计时器上打勾,使用计数器从列表中获取一个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();
}
然后,在计时器滴答声事件中,更改图片如下:

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
}

不要在图像上发布代码。只需粘贴剪掉的代码。您可以在文本前用4个空格格式化代码。图像上的代码不可搜索。计数器不变。使其达到等级。。!必须打开一个新的图像才能看到代码,这很烦人,因为在正常情况下输入代码更容易看到。