0

大家好,我这里有一个简单的问题,如果我点击label1它会将颜色变回红色,但我的默认背景颜色是透明的。

   private void label_Click(object sender, EventArgs e)
   {

       label1.BackColor = Color.Red;
   }

   private void label2_Click(object sender, EventArgs e)
   {
       label2.BackColor = Color.Red;
   }

如果我再次单击标签怎么办,我希望它改变颜色为透明,我该如何编码?先感谢您!:D

label.BackColor = Color.Transparent;
4

4 回答 4

4

您只需要根据当前值翻转颜色即可。这可以通过执行以下操作来完成:

label1.BackColor = label1.BackColor == Color.Red ? Color.Transparent : Color.Red;

以上是一个conditional operator并且基本上只是 if/else 语句的简写,

if (label1.BackColor == Color.Red)
    label1.BackColor = Color.Transparent
else
    label1.BackColor = Color.Red;
于 2013-10-21T15:35:28.803 回答
1

你为什么不添加一个if声明:

private void label_Click(object sender, EventArgs e)
{
    if(label1.BackColor == Color.Red)
    {
         label1.BackColor = Color.Transparent;
    }
    else
    {
        label1.BackColor = Color.Red;
    }
}
于 2013-10-21T15:37:18.907 回答
0
  private void label_Click(object sender, EventArgs e)
   {
       Label label1 = (Label)sender;
       if (label1.BackColor == Color.Red)
            label1.BackColor = Color.Transparent;
       else
            label1.BackColor = Color.Red;
   }

通过使用行 Label label1 = (Label)sender; 您可以为所有标签应用相同的事件。

于 2013-10-21T15:38:53.690 回答
0
if( label.BackColor == Color.Red)
{
     label.BackColor = Color.Transparent;
}else
{
    label.BackColor = Color.Red;
}
于 2013-10-21T15:40:03.053 回答