2015-10-07 135 views
0

我试图让一个按钮,将显示不同的图像曾经一次被点击在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"; 
    } 
} 
+4

移动'int a = 0',使它不在click方法中。就目前而言,每次点击时,a = 1; –

+4

在click方法之外放置了一个初始化 –

回答

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)等等......

相关问题