Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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#_Arrays_Winforms_Timer_Picturebox - Fatal编程技术网

C# 如何交换图片

C# 如何交换图片,c#,arrays,winforms,timer,picturebox,C#,Arrays,Winforms,Timer,Picturebox,您好,我有一个问题,如何将我的图片框中的图片交换为 EX:pictuebox1显示pic1,然后pictuebox 2显示pic2 然后交换图片,然后picturebox1显示图片2,picturebox2显示图片3,然后再次交换。我该怎么做?如果有人能帮助我,我会非常感激的 string[] picture = { @"ImageResource\Die_Images\die1.jpg", @"

您好,我有一个问题,如何将我的图片框中的图片交换为 EX:pictuebox1显示pic1,然后pictuebox 2显示pic2 然后交换图片,然后picturebox1显示图片2,picturebox2显示图片3,然后再次交换。我该怎么做?如果有人能帮助我,我会非常感激的

    string[] picture = {
                       @"ImageResource\Die_Images\die1.jpg",
                       @"ImageResource\Die_Images\die2.jpg",
                         @"ImageResource\Die_Images\die3.jpg",
                           @"ImageResource\Die_Images\die4.jpg",
                             @"ImageResource\Die_Images\die5.jpg",
                                @"ImageResource\Die_Images\die6.jpg"};
    int index = 0;
    public Form1()
    {
        InitializeComponent();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        index++;
        if (index >= picture.Length)
            index = 1;
        else

            pictureBox1.ImageLocation = string.Format(@"ImageResource\Die_Images\die{0}.jpg", index);
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            if (index >= picture.Length)
                index = 0;
            else
            pictureBox2.ImageLocation = string.Format(@"ImageResource\Die_Images\die{0}.jpg", index);
            pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;


    }

    private void button1_Click(object sender, EventArgs e)
    {
        timer1.Start();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        timer1.Stop();
    }

不确定这是你正在看的,但是试试看

private int operationState = 0; 

private void timer1_Tick(object sender, EventArgs e)
{
    switch(operationState)
    {
        case 0://Next image
        {
            pictureBox1.ImageLocation = picture[index];
            pictureBox2.ImageLocation = picture[index + 1];

            index++;
            if (index >= (picture.Length - 1))
            {
                index = 0;
            }
            break;
        }
        case 1://Swap
        {
            string tempLocation =  pictureBox1.ImageLocation;
            pictureBox1.ImageLocation = pictureBox2.ImageLocation;
            pictureBox2.ImageLocation = tempLocation;
            break;
        }
    }

    operationState = (++operationState) % 2;
}

我从Tick事件中删除了
SizeMode
设置代码,您只能在其他地方执行一次。

如果if/else语句中有多行,您需要在其周围加上括号感谢您指出,您在哪里设置计时器间隔?这是winforms/WPF对您来说是什么意思?两个图片框应交换其图像?应设置pictureBox2.SizeMode=PictureBoxSizeMode.StretchImage;例如,在单击处理程序中。。。在每一个滴答声上设置是多余的。实际上我并没有真正的交换机制。。。你能更准确地描述一下吗?