[英]Increment number per button click C# Desktop
我正在嘗試用計時器創建一個數學游戲,計算出特定時間內正確問題的數量。 現在我試圖在每個按鈕點擊時增加一個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
聲明移至類scope 。 否則,每次單擊都會從新變量開始。
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.