想做个计时器用label 显示 数字倒数
            for (int i = 5; i >= 0; i--)
            {
            labeldaoshu.Text = i.ToString();
            Thread.Sleep(1000);
            }可是这样完全不能显示。。应该怎么做呢?谢谢

解决方案 »

  1.   

    public void Fun()
            {
                for (int i = 5; i >= 0; i--)
                {
                    this.Invoke(new Action(() => { label1.Text = i.ToString(); }));
                    System.Threading.Thread.Sleep(1000);
                }
            }
      

  2.   

    用楼上的即可,你那样Thread.Sleep();会锁住ui线程的。必须开启新线程进行计时,同时用ui线程更新页面。
      

  3.   

      
    for (int i = 5; i >= 0; i--)
                 {
                     this.Invoke(new Action(() => { label1.Text = i.ToString(); }));
                     System.Threading.Thread.Sleep(1000);
                 }UI也是一个线程。你线程休眠UI线程也是休眠的状态 所以没有效果。
      

  4.   

    拖个timer控件、在Tick事件里写
      

  5.   

    7楼+1,将timer的inteval设置为1000Timer timer1=new Timer();
    timer1.Interval=1000;
    timer1.Enable=true;
    int count=5;private void timer1_Tick(object sender,EventArgs e)
    {
        if(count>=0) 
            { 
               label.Text=count.ToString(); 
               count--;
             }
        else
             timer1.Enable=false;
    }
      

  6.   

    去拉一个Timer设置下 时间~!!
      

  7.   

    http://blog.csdn.net/xianfajushi/article/details/7679637