每次单击按钮时显示不同的图像

时间:2015-10-07 18:02:07

标签: c#

我试图制作一个按钮,只要在C#中按整数增量点击就会显示不同的图像

C#

private void button1_Click(object sender, EventArgs e)
 {
  int a = 0;

    a++;

    if (a == 1)
    {
        pictureBox1.ImageLocation = "http://s20.postimg.org/uazs6u2p9/99639488.png";
    }
    else if (a == 2)
    {
        pictureBox2.ImageLocation = "http://s20.postimg.org/cdopdvz8t/99639514.png";
    }
}

1 个答案:

答案 0 :(得分:1)

您已在方法内部声明int a,因此每次单击按钮时,都会创建一个值为0的新int。并且你总是将0增加到1.

而是将int a声明为字段。当达到最大可用情况时,还会设置一个默认条件来重置计数器。

private int a = 0;
private void button1_Click(object sender, EventArgs e)
{
    a++;

    switch(a)
    { 
        case 1: pictureBox1.ImageLocation = "http://s20.postimg.org/uazs6u2p9/99639488.png";
                break;
        case 2: pictureBox2.ImageLocation = "http://s20.postimg.org/cdopdvz8t/99639514.png";
                break;

        // put more cases here

        default: a = 0; // reset counter
                 break;
    }
}

还有另一种方法,而不是使用int并按顺序显示图像,您可以使用随机int和随机化图像。

private Random r = new Random();
private void button1_Click(object sender, EventArgs e)
{
    switch(r.Next(1,2))
    { 
        case 1: pictureBox1.ImageLocation = "http://s20.postimg.org/uazs6u2p9/99639488.png";
                break;
        case 2: pictureBox2.ImageLocation = "http://s20.postimg.org/cdopdvz8t/99639514.png";
                break;

        // put more cases here
    }
}

r.Next(x,y)只是在x和y之间产生一个随机数。因此,如果您有10个案例,则必须r.Next(1,10)。如果你有6个案例r.Next(1,6)等......