簡體   English   中英

每個按鈕的增量數量單擊C#Desktop

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM