标签前景冲突
本文关键字:冲突 标签 | 更新日期: 2023-09-27 18:27:50
我最近开始学习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();
}
然而,当它被调用时,它正确地设置了背景颜色,但放弃的rund,即文本,从红色(默认)变为玩家1的黑色,而不是白色,从浅灰色变为玩家2的黑色。
我想知道"标签"或"表单"中是否有任何字段在背景颜色更改时默认更改文本颜色。如果没有,还有什么可以做出这种改变?
如有任何帮助,我们将不胜感激。
在标签上设置项目后,将禁用它
lbl.Enabled = false;
这将导致标签使用Windows中禁用的主题。
为了更改此行为,您应该转而使用事件,而不是直接方法。
每个标签都提供一个Click
-事件,单击标签后可以使用该事件调用方法
然后,您可以从Label.Click
中删除事件处理程序,而不需要禁用它
请参阅MSDN了解Control.Click
-事件处理程序
删除lbl.Enabled = false;
以查看的更改
在您取消控制后,它将标签背景色设置为SystemColors.Control
,前景色设置为SystemColors.GrayText