标签没有在Windows窗体上更新

本文关键字:窗体 更新 Windows 标签 | 更新日期: 2023-09-27 18:28:21

在我编程的数学游戏中,我的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();
                }
            }
        }
    }

标签没有在Windows窗体上更新

要在每次单击时更改标签上的值,每次都需要生成新的随机数。

if (counter < 5)
{
    number1 = rand.Next(1, 50);
    number2 = rand.Next(1, 50);
    lblNumber1.Text = number1.ToString();
    lblNumber2.Text = number2.ToString();
}

在您的代码中,初始化后的任何时候都不会更改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();
    }
    //...
}