注册 登录
编程论坛 C# 论坛

简单进度条代码和计时器代码

zyz0304360 发布于 2008-03-11 18:12, 5162 次点击
本人对C#还很懵懂

刚才在搜索进度条相关资料,看了良久,头大了,但是不懂

现欲求简单进度条代码和计时器代码

例如:

有三个控件

1.开始按钮

2.进度条控件

3.计时器控件(有什么的好呢?郁闷啊)

想实现的功能是(用C#

按下 开始按钮  
1.进度条开始运行(类似WINDOWS开机的那种方式,一遍又一遍的进度,因为我也不知道程序会运行多长时间)

2.计时器开始计时 00:00:00的格式 一秒一秒地走

3.运行一个循环
   循环的功能:在外部定义一个字符串
                 10秒钟执行一次(wait for 10sec),判断字符串的内容(如:var)
                 如if var=="aaa" 则跳出循环
                 否则继续10秒钟判断一次var==“aaa”                  

4.如果var==“aaa”,进度和计时停止,进度条清空,但时间不清空

5.下次按下开始按钮时,先将时间清空 顺序2.3.4步骤

有点复杂

先谢谢各位朋友了
11 回复
#2
pacocai2008-03-11 18:26
楼主有两点,第一就是Windows进度条不是我们平时用的进度条,而是一个GIF图片。如果你要实现那个直接用个GIF图片就解决问题了。循环可以直接使用一个TIME组件就可以实现了。详细的TIME的组件的用法请查书,直接给代码没兴趣。GIF图片可以使用一个PCITUREBOX来实现。使用TIME控件可以计时。基本上问题有以上的东西就可以解决了,剩下的楼主请自行查书或是查MSDN,
#3
peach54602008-03-11 20:32
win开机的那种一遍一遍的进度...在C#的progressbar空间里面有个样式选项...(选哪个忘了)可以实现
#4
pacocai2008-03-11 21:10
我感觉用GIF动画来实现比较容易一些。
#5
nodeadbird5202008-03-12 07:25
使用ProgressBar和Timer控件就可以实现了.
#6
zyz03043602008-03-12 09:47
多谢答复
非常感谢大家

我用的
没有MARQUEE的那个STYLE
#7
zyz03043602008-03-12 09:52
那个GIF图片时自己做吗?
还是在网上下载
以前没有用过
一点儿也不懂啊
#8
pacocai2008-03-12 09:59
自己做吧!比较好一些,去网上找…………同等的时间我都可以做N个了。
#9
zyz03043602008-03-12 14:57
谢谢pacocai
进度条搞定了
只不过不会让它停下来
#10
lduhua2008-11-04 19:38
#11
泥泥2012-11-20 01:44
这是我写的,但是我无法在开始按钮中控制时间的走动,麻烦前辈帮忙解决一下,谢谢!
    long second = 360;
        //时钟控件
        private void Changetimer_Tick(object sender, EventArgs e)
        {
            second -= 1;
            lblminute.Text = new DateTime(second * 10000000).ToLongTimeString();
            //进度条根据时间的变化而变化
            if (prggessbar.Value >= 360)
            {
                Changetimer.Enabled = false;
                //..关闭或开启程序
            }
            else
            {
                prggessbar.Value += 1;
            }
        }

        //结束按钮
        private void btnEndTime_Click(object sender, EventArgs e)
        {
            //如何正在计时,则先停止再清零,否则直接清零
            //if (this.Changetimer.Enabled == true)
            //{
                long second = 360;
                lblminute.Text = new DateTime(second * 10000000).ToLongTimeString();

                prggessbar.Value = 0;//设置当前值

                Changetimer.Enabled = false;
            //}
        }
        //开始按钮
        private void btnBeginTime_Click(object sender, EventArgs e)
        {
            if (this.Changetimer.Enabled == true)
            {
                Changetimer.Enabled = true;
                //进度条的加载
                prggessbar.Minimum = 0;
                prggessbar.Maximum = 360;
                prggessbar.Step = 1;
            }
            else
            {
                Changetimer.Enabled = false;
                Changetimer.Interval = 1000;//一秒中加载一次
                Changetimer.Tick += new EventHandler(this.Changetimer_Tick);
            }
        }
#12
hui臭小子2014-10-15 10:00
回复 楼主 zyz0304360
代码哪里去啊亲  我也想要
1