0

我很难弄清楚一些事情。

我希望根据单击的按钮是正确答案还是错误答案来更改按钮的背景颜色,即如果单击的按钮是正确答案,则背景颜色更改为 YellowGreen,如果是错误答案,则背景所有错误答案的颜色变为红色红色,正确答案的背景颜色为黄绿色,以便用户能够查看他们是否正确或错误,以及哪个答案是正确的。

就像第一个问题出现,有四个按钮,我点击正确答案,它变成绿色,错误答案变成红色,但是当我点击下一步并转到下一个问题时,它不再改变颜色。如果我单击其中一个错误答案,颜色也不会因某种原因而改变,前提是我先单击正确答案。

这四个按钮分别命名为 button4、button5、button6 和 button7。我有的示例代码(所有四个按钮都有这个):

if (qCorrect == 1)
{
    button4.BackColor = Color.YellowGreen;
    button5.BackColor = Color.Red;
    button6.BackColor = Color.Red;
    button7.BackColor = Color.Red;
}

在 btnNext_Click 我有:

private void btnNext_Click(object sender, EventArgs e)
    {
        // swap panels
        dPanel.Visible = false;
        qPanel.Visible = true;

        button4.BackColor = SystemColors.Control;
        button5.BackColor = SystemColors.Control;
        button6.BackColor = SystemColors.Control;
        button7.BackColor = SystemColors.Control;

        button4.Font = new Font(button4.Font.Name, button4.Font.Size, FontStyle.Regular);
        button5.Font = new Font(button5.Font.Name, button5.Font.Size, FontStyle.Regular);
        button6.Font = new Font(button6.Font.Name, button6.Font.Size, FontStyle.Regular);
        button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Regular);

        if ( qCounter != qSection )
        {
            PickQuestion();
            label5.Text = "Question " + qCounter.ToString() + " of " + qSection.ToString();

            button4.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
        }
        else
        {
            btnNext.Enabled = false;
            label5.Text = "You answered " + qCorrect.ToString() + " questions correctly out of a possible " + qSection.ToString();
        }
    }

任何有关该问题的帮助将不胜感激。

4

1 回答 1

0

好的,我明白了!在您的回答按钮的事件处理程序中,您总是递增 qCorrect,但您只检查qCorrect == 1. 如果您单击第一个答案,qCorrect将为 1,当您第二次回答时,qCorrect将为 2,但您检查qCorrect == 1. 等等...

当您在 button4_click 和 button6_click 中为简单模式设置断点时,您就会明白我的意思了!希望这可以进一步帮助您。

于 2013-03-09T20:41:39.933 回答