回 帖 发 新 帖 刷新版面

主题:timer 和 progressbar

[em18]
  做一个进度条,让他一秒一跳,10秒跳完,可是我写了代码编译没有问题,他就是不跳呢,高手门指教下哈,好吧,我承认这是基础问题,我也是个新手。
我的代码如下:
      public partial class Form1 : Form
    {
       
        public Form1()
        {
            InitializeComponent();
            Timer t = new Timer();
            this.progressBar1.Value = 0;
            t.Start();
            t.Enabled = true;
            
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.progressBar1.Minimum = 0;
            this.progressBar1.Maximum = 100;
           
            if (this.progressBar1.Value <= this.progressBar1.Maximum)
              this.progressBar1.Value ++;
        }

回复列表 (共4个回复)

沙发

你有没有挂上Timer的Elapsed事件
间隔设成多少了

板凳

哦,我设置的是1000,我想的是无论怎么说他都应该跳啊,可以他就是没反映,这就不知道为什么了?

3 楼

你提供的代码中t的Elasped事件并未挂载
你的t和timer1应该不是一回事吧,检查一下是不是控件Tick是否激活

4 楼


using System.Timers;

namespace WindowsApplication16
{
    public partial class Form1 : Form
    {
        delegate void callBack();
        public Form1()
        {
            InitializeComponent();
                        
            this.progressBar1.Value = 0;

            System.Timers.Timer t = new System.Timers.Timer(1000);
            t.Elapsed += new ElapsedEventHandler(timer1_Tick);
            t.AutoReset = true;
            t.Enabled = true;
                        
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.progressBar1.Minimum = 0;
            this.progressBar1.Maximum = 100;

            this.Invoke(new callBack(progress));
        }
        private void progress()
        {
            if (this.progressBar1.Value <= this.progressBar1.Maximum)
                this.progressBar1.PerformStep();
        }
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册