每个button单击C#桌面增加数量

我试图用一个计时器来创build一个math游戏,在特定的时间内计算正确的问题的数量。 现在我试图增加每个button的int值,如果答案是正确的。

但它只增加一次,有时不会增加:

 private void button1_Click(object sender, EventArgs e) { int x = Randomnumber.Next(12); int z = Randomnumber.Next(12); int s = x * z; int correct = 0; //int cv = +correct; textBox2.Text = x.ToString(); textBox3.Text = z.ToString(); if (s == Convert.ToInt32(textBox4.Text)) { correct += 1; numbercorrect.Text = correct.ToString(); } } 

你的主窗体(我假设你正在使用窗体)是一个类。

我建议将变量声明为表单类的成员,并使用它来保存正确响应的数量。

我想像下面这样的东西。

 namespace WindowsFormsApplication1 { public partial class Form1 : Form { int correct; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //insert logic here correct++; } } } 

您需要将int correct声明移动到类作用域 。 否则,每次点击,你开始新的变量。

int correct = 0; 在功能范围内。 将它作为类字段移到函数之外。 这样它将保持它的价值,而不是在每次点击被重置为0

尝试这个:

 private int correct = 0; private void button1_Click(object sender, EventArgs e) { int x = Randomnumber.Next(12); int z = Randomnumber.Next(12); int s = x * z; //int cv = +correct; textBox2.Text = x.ToString(); textBox3.Text = z.ToString(); if (s == Convert.ToInt32(textBox4.Text)) { correct ++; numbercorrect.Text = correct.ToString(); } 

你总是从0开始计数,永远不会获得原始值。 现在,保存数据的变量在函数之外,并在表单加载时进行初始化。

每次点击按钮, correct的beging重置为零。 尝试在方法之外声明correct

试试看下面的代码:

 int correct = 0; tryParse(numbercorrect.Text, out correct); 

所以你的代码必须是这样的:

 private void button1_Click(object sender, EventArgs e) { int x = Randomnumber.Next(12); int z = Randomnumber.Next(12); int s = x * z; int correct = 0; int.tryParse(numbercorrect.Text, out correct); //int cv = +correct; textBox2.Text = x.ToString(); textBox3.Text = z.ToString(); if (s == Convert.ToInt32(textBox4.Text)) { correct += 1; numbercorrect.Text = correct.ToString(); }