小さな問題がありますが、最初にいくつかのコンテキストがあります
正しい答えがクリックされ、他の3つが赤くなると、ボタンの背景色がYellowGreenに変わるようになりましたが、新しい問題は、ユーザーがクリックした答えが間違っている場合にそれを行う方法がわからないことです、3つの間違った答えが赤くなり、正しい答えが緑色で強調表示されます(ユーザーがクリックしたボタンの周りに明るい境界線が表示され、選択された答えであることを通知します).
元の問題を機能させるために、次のことを行いました。
if (btnA.Tag.ToString() == "0")
{
btnA.BackColor = Color.YellowGreen;
btnB.BackColor = Color.Red;
btnC.BackColor = Color.Red;
btnD.BackColor = Color.Red;
}
数字 0 ~ 4 に対して上記の 4 回を実行しました (配列内の 4 つの可能な回答。フォームの A、B、C、または D.
私のコードは次のようになりました:
private void button4_Click(object sender, EventArgs e)
{
//Disables the buttons upon clicking
btnA.Font = new Font(btnA.Font.Name, btnA.Font.Size, FontStyle.Bold);
btnA.FlatAppearance.BorderColor = Color.Cyan;
btnA.FlatAppearance.BorderSize = 3;
btnA.Enabled = false;
btnB.Enabled = false;
btnC.Enabled = false;
btnD.Enabled = false;
if (btnA.Tag.ToString() == "0")
{
btnA.BackColor = Color.YellowGreen;
btnB.BackColor = Color.Red;
btnC.BackColor = Color.Red;
btnD.BackColor = Color.Red;
}
if (btnA.Tag.ToString() == "0")
{
iCorrect++;
if (debugMode)
{
Debug.WriteLine("Correct: " + iCorrect.ToString());
}
}
}
private void button5_Click(object sender, EventArgs e)
{
//
btnB.Font = new Font(btnB.Font.Name, btnB.Font.Size, FontStyle.Bold);
btnB.FlatAppearance.BorderColor = Color.Cyan;
btnB.FlatAppearance.BorderSize = 3;
btnA.Enabled = false;
btnB.Enabled = false;
btnC.Enabled = false;
btnD.Enabled = false;
if (btnA.Tag.ToString() == "1")
{
btnA.BackColor = Color.Red;
btnB.BackColor = Color.YellowGreen;
btnC.BackColor = Color.Red;
btnD.BackColor = Color.Red;
}
if (btnA.Tag.ToString() == "1")
{
iCorrect++;
if (debugMode)
{
Debug.WriteLine("Correct: " + iCorrect.ToString());
}
}
}
private void button6_Click(object sender, EventArgs e)
{
//
btnC.Font = new Font(btnC.Font.Name, btnC.Font.Size, FontStyle.Bold);
btnC.FlatAppearance.BorderColor = Color.Cyan;
btnC.FlatAppearance.BorderSize = 3;
btnA.Enabled = false;
btnB.Enabled = false;
btnC.Enabled = false;
btnD.Enabled = false;
if (btnA.Tag.ToString() == "2")
{
btnA.BackColor = Color.Red;
btnB.BackColor = Color.Red;
btnC.BackColor = Color.YellowGreen;
btnD.BackColor = Color.Red;
}
if (btnA.Tag.ToString() == "2")
{
iCorrect++;
if (debugMode)
{
Debug.WriteLine("Correct: " + iCorrect.ToString());
}
}
}
private void button7_Click(object sender, EventArgs e)
{
//
btnD.Font = new Font(btnD.Font.Name, btnD.Font.Size, FontStyle.Bold);
btnD.FlatAppearance.BorderColor = Color.Cyan;
btnD.FlatAppearance.BorderSize = 3;
btnA.Enabled = false;
btnB.Enabled = false;
btnC.Enabled = false;
btnD.Enabled = false;
if (btnA.Tag.ToString() == "3")
{
btnA.BackColor = Color.Red;
btnB.BackColor = Color.Red;
btnC.BackColor = Color.Red;
btnD.BackColor = Color.YellowGreen;
}
if (btnA.Tag.ToString() == "3")
{
iCorrect++;
if (debugMode)
{
Debug.WriteLine("Correct: " + iCorrect.ToString());
}
}
}
}
}
いくつかの異なることを試しましたが、基本的にやりたいことではない奇妙なことが起こり続け、これを達成するためにどのような構文やコードを使用する必要があるのか わかりません。