2015-10-07 78 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)等等......

相關問題