私は何かを理解するのに苦労しています。
クリックしたボタンが正解か間違った答えかによって、ボタンの背景色を変えたい。つまり、クリックしたボタンが正解の場合は背景色が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();
}
}
問題の助けをいただければ幸いです。