每个按钮点击C#桌面增加数量
我试图创建一个带有计时器的数学游戏,计时器可以计算出特定时间内正确问题的数量。现在,如果答案是正确的,我尝试增加每个按钮点击的每个按钮点击C#桌面增加数量,c#,windows,C#,Windows,我试图创建一个带有计时器的数学游戏,计时器可以计算出特定时间内正确问题的数量。现在,如果答案是正确的,我尝试增加每个按钮点击的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
值
但它只增加一次,有时不增加:
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();
}
}
您的主窗体(我假设您正在使用窗体)是一个类
我的建议是声明一个变量作为forms类的成员,并使用它来保存正确响应的数量
我会想象下面的情形
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
将开始重置为零。
尝试在方法之外声明正确。尝试查看下面的代码:
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();
}