private void label1_Click(object sender, EventArgs e)
        {
            if ((sender as Label).BackColor == Color.FromArgb(128, 255, 128))
            {
                (sender as Label).BackColor = Color.Yellow;
            }
            if ((sender as Label).BackColor == Color.Yellow)
            {
                (sender as Label).BackColor = Color.FromArgb(128, 255, 128);
            }
        }我点了,为什么没有变颜色呢?

解决方案 »

  1.   

    加断点调试看看点击的时候Label的BackColor是多少
      

  2.   

    是不是你一开始的BackColor不符合两个if语句 所以不变啊
      

  3.   

    程序是一步一步往下执行的,你让它先变成黄色,然后又让它变回原来的颜色,你当然看不出来它变颜色了!你是不是想实现点击的时候变成黄色,松开的时候再变回原来的啊,用MouseDown,MouseUp事件
      

  4.   

    你的初始颜色是不是Color.FromArgb(128, 255, 128) ??
    如果是的话,你把他设置为黄色过后,然后又把他变回来了private void label1_Click(object sender, EventArgs e)
      {    
          Lable lbl = sender as Label;
          if(lbl == null)
          {
               return;
          }
          else if(lbl.BackColor == Color.FromArgb(128, 255, 128))
          {
                 lbl.BackColor = Color.Yellow;
          }
          else if(lbl.BackColor == Color.Yellow)
          {
                 lbl..BackColor = Color.FromArgb(128, 255, 128);
          }
      }
      

  5.   

    LZ我刚把你代码自己试了一下,,那个if根本就没进去。。你哪个backcolor设置错了吧。。
      

  6.   

    你开始if完,颜色已经成为了Color.Yellow;
    然后你又判断 =Color.Yellow;时候
    改成原来那颜色,当然不变了
    你把第二个IF改成else
    你这两个IF,是都执行的好不
      

  7.   

    int a=0
    if(a==0)
    {
    a=1;
    }
    if(a==1)
    {
    a=0;
    }
      

  8.   

        我调试了一下 那个lable的backcolor为   
     ARGB=(255, 236, 233, 216)
      

  9.   

    LZ没必要这个纠结直接
    this.lable.BackColor=....
      

  10.   

    楼主想做一个点击后循环变色的label吧。
    你的循环有问题,应改为private void label1_Click(object sender, EventArgs e)
      {
      if ((sender as Label).BackColor == Color.FromArgb(128, 255, 128))
      {
      (sender as Label).BackColor = Color.Yellow;
      }
      else  {
      (sender as Label).BackColor = Color.FromArgb(128, 255, 128);
      }
      }
     
      

  11.   

    因为你如果第一个if执行了,第二个if必然也执行了
    第一个if将颜色变为黄色,那么就满足第二个if的条件了,所以你做了一遍等于没做。
    至于有时候点两下才会变色,我想你是不是点击太快的关系。