0

私は何かを理解するのに苦労しています。

クリックしたボタンが正解か間違った答えかによって、ボタンの背景色を変えたい。つまり、クリックしたボタンが正解の場合は背景色がYellowGreenに変わり、間違った答えの場合は背景色が変わる。すべての間違った答えの色は赤赤に変わり、正しい答えの背景色はYellowGreenであるため、ユーザーは質問が正しいか間違っているか、そしてどの答えが正しいかを確認できます。

最初の質問が表示され、4つのボタンがあり、正しい答えをクリックすると緑色になり、間違った答えが赤色になりますが、[次へ]をクリックして次の質問に進むと、色が変わりません。間違った答えの1つをクリックしても、最初に正しい答えをクリックした場合にのみ、何らかの理由で色が変化しません。

4つのボタンには、button4、button5、button6、およびbutton7という名前が付けられています。私が持っているサンプルコード(4つのボタンすべてにこれを持っています):

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。最初の回答をクリックした場合はqCorrect1 になり、2 回目に回答した場合は 2 にqCorrectなりますが、 をチェックしqCorrect == 1ます。等々...

イージーモードのボタン4_クリックとボタン6_クリックにブレークポイントを設定すると、私が何を意味するかがわかります! これがさらに役立つことを願っています。

于 2013-03-09T20:41:39.933 に答える