2014-10-29 28 views
-3

在我編程的數學遊戲中,我的Windows窗體中有數字顯示總和的標籤。標籤沒有在Windows窗體上更新

當我點擊button1時,它們應該更改爲其他數字,但它們不會。應該改變的標籤被稱爲lblNumber1lblNumber2

這裏是我的代碼:

public partial class plussommen : Form 
    { 
     int counter = 0; 
     int correct = 0; 
     int incorrect = 0; 
     Random rand = new Random(); 
     int number1, number2; 
     int answer; 
     string sum; 

     public plussommen() 
     { 
      InitializeComponent(); 
      number1 = rand.Next(1, 50); 
      number2 = rand.Next(1, 50); 
      sum = number1 + " + " + number2 + " = "; 
      answer = number1 + number2; 
     } 

     private void plussommen_Load(object sender, EventArgs e) 
     { 
      if (counter < 5) 
      { 
       lblNumber1.Text = number1.ToString(); 
       lblNumber2.Text = number2.ToString(); 
      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      lblCorrect.Text = correct.ToString(); 
      lblIncorrect.Text = incorrect.ToString(); 

      if (textBox1.Text == answer.ToString()) 
      { 
       MessageBox.Show("Answer correct!"); 
       correct = correct + 1; 
      } 
      else 
      { 
       MessageBox.Show("Answer incorrect!"); 
       incorrect = incorrect + 1; 
      } 

      if (counter < 5) 
      { 
       lblNumber1.Text = number1.ToString(); 
       lblNumber2.Text = number2.ToString(); 
      } 
      else 
      { 
       if (counter == 5) 
       { 
        MessageBox.Show("You've made five sums, choose another kind of sum."); 
        this.Close(); 
        Form1 menu = new Form1(); 
        menu.Show(); 
       } 
      } 
     } 
    } 
+0

是櫃員<5? getal1和getal2中有什麼? – 2014-10-29 14:41:14

+5

循環在哪裏? – 2014-10-29 14:41:16

+1

我沒有看到任何循環。你確定要寫一切嗎?或者你錯過了什麼? – 2014-10-29 14:41:57

回答

0

要更改標籤值的每次點擊,您需要生成新的隨機數各一次。

if (counter < 5) 
{ 
    number1 = rand.Next(1, 50); 
    number2 = rand.Next(1, 50); 
    lblNumber1.Text = number1.ToString(); 
    lblNumber2.Text = number2.ToString(); 
} 
0

在代碼中,你是不是在初始化後的任何時間改變number1number2值。這就是爲什麼他們沒有在每次點擊按鈕後更新。

你需要做的是更新的數字,答案每次點擊後:

private void button1_Click(object sender, EventArgs e) 
{ 
    //... 
    if (counter < 5) 
    { 
     number1 = rand.Next(1, 50); 
     number2 = rand.Next(1, 50); 
     answer = number1 + number2; 
     lblNumber1.Text = number1.ToString(); 
     lblNumber2.Text = number2.ToString(); 
    } 
    //... 
}