2014-10-29 59 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(); 
    } 
    //... 
}