私は最近 c# を学び始めました。ラベルとフォームを使用して、簡単な三目並べゲームを作成することから始めました。
ラベルをクリックすると、背景色と前景色が変更されます。
これが私のコードです。
public void LabelClick(Label lbl, int i)
{
if (strCurrPlayer == strPlayer1)
{
liP1Squares.Add(i);
lbl.BackColor = System.Drawing.Color.Black;
lbl.ForeColor = System.Drawing.Color.White;
lbl.Text = "X";
}
else
{
//Player2
liP2Squares.Add(i);
lbl.BackColor = System.Drawing.Color.White;
lbl.ForeColor = System.Drawing.Color.Black;
lbl.Text = "O";
}
lbl.Enabled = false;
SwapPlayer();
}
ただし、呼び出されると、背景色が正しく設定されますが、前景、つまりテキストが赤 (デフォルト) から、プレイヤー 1 では白ではなく黒に、プレイヤー 2 では黒ではなくライト グレーに変更されます。
背景色が変更されたときにデフォルトでテキストの色を変更するラベルまたはフォーム内のフィールドがあるかどうか疑問に思っていました。そうでない場合、他に何がこの変更を行っている可能性がありますか?
どんな助けでも大歓迎です。