在Winform中要显示一个倒计时器,是不是要用Lable和Timer呢?求解,详细点

解决方案 »

  1.   

    也可以使用目标时间减去当前时间啊,用TimeSpan()函数
      

  2.   

    用LABEL和timer就可以了,简单明了~
      

  3.   

    用Timer实现
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace CountDown
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                tmr.Interval = 1000;
                tmr.Tick += new EventHandler(tmr_Tick);
            }        private int start = 20;        private Timer tmr  = new Timer();        private void button1_Click(object sender, EventArgs e)
            {
                start = 20;
                this.button1.Text = start.ToString();
                tmr.Start();
            }        void tmr_Tick(object sender, EventArgs e)
            {
                this.button1.Text = (start -= 1).ToString();            if (start == 0) tmr.Stop();
            }
        }
    }
      

  4.   

    可以用Timer,也可以用线程写一个倒计时,每次执行的时候,休眠1秒,Thread.Sleep(1000);
      

  5.   

    恩  lable 和 timer就可以了 把最终的时间  减去现在的 时间显示在lable上  每隔若1秒(或相应时间)执行一次
      

  6.   

       private void timer1_Tick(object sender, System.EventArgs e)
       {
        txtStart.Text=System.DateTime.Now.ToLongTimeString();
       }   private void button1_Click(object sender, System.EventArgs e)
       {
        label1.Text="当前时间";
        timer1.Enabled=true;
        label2.Visible=false;
        txtEnd.Visible=false;
        lbShow.Text="";
        txtTime.Focus();
        txtTime.Text="";
        timer2.Enabled=false;
       }   private void txtTime_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
       {
        if(e.KeyChar=='\r')
        {
         if(this.txtTime.Text=="")
          return;
         Remainder=Convert.ToUInt32(txtTime.Text)*60;
         label2.Visible=true;
         txtEnd.Visible=true;
         label1.Text="开始时间";
         timer1.Enabled=false;
         timer2.Enabled=true;
         this.button1.Focus();
        
        }
       }   private void timer2_Tick(object sender, System.EventArgs e)
       {
        txtEnd.Text=System.DateTime.Now.ToLongTimeString();
       
        Remainder--;
        minute=Remainder/60;
        sencond=Remainder%60;
        if(sencond<10)
        {
         lbShow.Text="剩余时间:"+minute+"分0"+sencond+"秒";
        }
        else
        {
         lbShow.Text="剩余时间:"+minute+"分"+sencond+"秒";
        }
        if(Remainder==0)
        {
         timer2.Enabled=false;
         lbShow.Text+="---时间到。";
        }
       }
      

  7.   

    刚才试了试,怎么不行呢?借LZ的帖子看下:
    直接拖一个Timer控件到Winform窗口下,然后设置”Tick“事件,在其中写处理方法,设置Timer控件的”Interval“属性为”1000“,不也就是一分钟吗?怎么不会触发事件。详细代码:
    public int examtime=40;
    Lable RemainingTime=new Lable();
    private void tmr_Tick(object sender, EventArgs e)
            {
                examtime--;
                RemainingTime.Text = examtime.ToString();
            }怎么不会出现倒计时
      

  8.   


    知道了,忘了Start()了,不好意思
      

  9.   

    LZ这样做:
    private void tmr_Tick(object sender, EventArgs e)
            {            examtime--;
                RemainingTime.Text = examtime.ToString();            if (examtime == 0)
                {
                    tmr.Stop();
                    //强制执行XXX方法
                }
                
            }
      

  10.   

    private void Form3_Load(object sender, EventArgs e)
            {
                //lblsj.Text = n;
                timer1.Start();
                examTime--;
            }
            int examTime = 1200;
            private void timer1_Tick(object sender, EventArgs e)
            {
                
                if (examTime > 0)
                {
                    examTime--;
                    lblsj.Text = string.Format("{0:00}:{1:00}", examTime / 60, examTime % 60);
                }
                else
                {
                    timer1.Stop();
                }
            }就这样   
      

  11.   

    这个没什么吧  就是个全局变量  Timer事件中-1