【问题标题】:C# quiz game: right radiobutton label scoreC#问答游戏:右单选按钮标签得分
【发布时间】:2019-04-10 15:59:38
【问题描述】:

我正在 C# 中的 windows 窗体应用程序中制作一个问答游戏项目,并试图使其正确的单选按钮单击在标签上给出 1 分,在错误答案上给出 0 分。组框中有 4 个单选按钮,其中一个是正确答案。我在代码中遇到的问题是,如果我在第一个单选按钮中输入一个正确答案,然后继续到下一个 groupboxes 问题,它不会添加分数,所以假设前 2 个 groupbox 问题都是正确的,它添加的第一个,因此得分为 1,然后在右击下一个后,它就保持 1。我需要在代码中添加什么才能正确计算答案?

private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked)
            {
                int score = 1;
                label1.Text = score.ToString();
                score = score += 1;
                score.ToString();
            }


 private void radioButton5_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton5.Checked)
            {
                int score = 1;
                label1.Text = score.ToString();
                score = score += 1;
                score.ToString();
            }

第一个单选按钮是第一个组合框的正确答案,它将标签加 1。在第二个单选按钮上,它应该向标签添加 1 分,所以总分应该是 2,我做错了什么?

【问题讨论】:

  • 说实话,我并没有真正得到你想要实现的目标,但是你总是在每个函数中将 score 初始化为 1,然后将其写入标签,然后再写入得分加 1。最后一个score.ToString(); 并没有真正做任何事情。所以当然这两个函数的结果是标签会显示1

标签: c# radio-button label


【解决方案1】:

在方法之外定义一个新的成员变量。然后您可以从此类中的每个方法访问它。另外:+= 1 已经给 score 加了 1,所以你不必做 score = score += 1。

private int _score = 0;

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
        if (radioButton1.Checked)
        {
            _score += 1;
            label1.Text = _score.ToString();
        }
    }

    private void radioButton5_CheckedChanged(object sender, EventArgs e)
    {
        if (radioButton5.Checked)
        {
            _score += 1;
            label1.Text = _score.ToString();
        }
     }

接下来您应该做的事情可能是考虑将计算和 UI 更新外包给新方法。例如:

private void AddToScore(int points)
{
    _score += points;
} 

所以你可以说:

if (radioButton5.Checked)
{
    AddToScore(5); //Adds 5 points to score
    label1.Text = _score.ToString();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多