单击时更改标签背景色

时间:2013-10-21 15:31:53

标签: c# event-handling label backcolor

大家好,我在这里遇到一个简单的问题,如果我点击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 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

为什么不添加if声明:

private void label_Click(object sender, EventArgs e)
{
    if(label1.BackColor == Color.Red)
    {
         label1.BackColor = Color.Transparent;
    }
    else
    {
        label1.BackColor = Color.Red;
    }
}

答案 2 :(得分: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;您可以为所有标签应用相同的事件。

答案 3 :(得分:0)

if( label.BackColor == Color.Red)
{
     label.BackColor = Color.Transparent;
}else
{
    label.BackColor = Color.Red;
}