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

律己修心 2008-03-10 09:54:27
本人对C#还很懵懂

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

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

例如:

有三个控件

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步骤

有点复杂

但是感觉CSDN里的朋友们解决这个还是应该很容易的

先谢谢各位朋友了





...全文
758 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzcyer 2008-03-25
  • 打赏
  • 举报
回复
一般软件是向下兼容,不是向上兼容,VS2005比2003扩展了很多东西,我也是被逼无奈,换了VS2005。
8过公司服务器上有安装文件,不费事,嘿嘿
律己修心 2008-03-15
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 systemsas 的回复:]
挺能整啊...........
对你那什么C#不懂
哈哈
[/Quote]
呵呵
我以前也没开发过啊
课程设计全是抄的
starlessnt 2008-03-14
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/progress/ProperProgress.aspx

你看看这个管用吗?
systemsas 2008-03-14
  • 打赏
  • 举报
回复
挺能整啊...........
对你那什么C#不懂
哈哈
律己修心 2008-03-12
  • 打赏
  • 举报
回复
这人发广告来了
删号啊版主

我不懂C#.net啊
着急也没有用

非常感谢你们给我的答案

但是VS。net2005的在2003上就不行

有了2005的代码不能用

和没有一样

郁闷啊


律己修心 2008-03-12
  • 打赏
  • 举报
回复
VS.net 2003
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

billy1985 2008-03-11
  • 打赏
  • 举报
回复

路过 MARK一下 刚学习这个
九章落地 2008-03-11
  • 打赏
  • 举报
回复
vs2003自带的滚动条实现不了.除非你重写它.

你可以找一个Gif动画来代替呀.

这里有一个开源的进度条控件,你可下载来用:
http://www.codeproject.com/KB/cpp/indeterminateprogressbar.aspx
律己修心 2008-03-11
  • 打赏
  • 举报
回复
vs2003的滚动条是没有Marquee样子的

那还可以实现WINDOWS开机时那个进度条的效果吗?

我只能用vs.net2003这个环境,插件只能用SPEAD

昨天看贴时

有个系统函数是关于那种进度条的

好像可以直接调用

但是,看了之后不知道怎么用
九章落地 2008-03-11
  • 打赏
  • 举报
回复
楼主你用的是vs.net2003啊!vs2003的滚动条是没有Marquee样子的.

你有几种解决方案:
1.升级到vs2005
2.找第三方滚动条控件
3.用一个循环滚动的Gif代替.
律己修心 2008-03-11
  • 打赏
  • 举报
回复
为什么我的.net里没有progressBar1.Style这个
有这个 progressBar1.StyleChanged


现在感觉
人啊,还是有点文化比较好啊
律己修心 2008-03-11
  • 打赏
  • 举报
回复
C# 中 第一句private Timers.Timer tmr; 编译未通过 原因:Timers

VB.net 关于bar.Style的语句均不能通过

是不是我的环境问题

我用的VS.NET2003
九章落地 2008-03-11
  • 打赏
  • 举报
回复
我给楼主弄个简单的:
1.在界面上拖两个按钮(button1,button2),一个滚动条(progressBar1),一个计时器(timer1),一个文本框(label1)

2.设置计时器的Interval属性为1000,让它每秒动执行一次;label1的text为0,计数从0开始.

3.通过异步调用实现滚动条:

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = (Convert.ToInt32(label1.Text) + 1).ToString();//每秒动label1的值加1
}

//按钮1开始
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Style = ProgressBarStyle.Marquee;
timer1.Start();

MethodInvoker mi = new MethodInvoker(DoSomething1);
mi.BeginInvoke(null, null);
}

//按钮2停止
private void button2_Click(object sender, EventArgs e)
{
var="aaa";
}


//完成
private void Finish()
{
progressBar1.Style = ProgressBarStyle.Blocks;
timer1.Stop();
}

//循环方法
private void DoSomething1()
{
//执行循环方法
while (var != "aaa")
{
//暂停10秒
System.Threading.Thread.Sleep(10000);
}

BeginInvoke(new MethodInvoker(Finish));
}
律己修心 2008-03-11
  • 打赏
  • 举报
回复
多谢帮忙
我先试一下再结贴
zhoujk 2008-03-11
  • 打赏
  • 举报
回复
做个循环,如果到了进程条的尾部,就将进程参数设为0......直到不再需要显示为止
wzuomin 2008-03-11
  • 打赏
  • 举报
回复
没办法给你在vs2003下调试
根据思路lz自己写段代码吧,没什么难的。
律己修心 2008-03-11
  • 打赏
  • 举报
回复
start = Now;
System.Threading.Thread th = new System.Threading.Thread(DoLoop);
bar.Style = ProgressBarStyle.Blocks;
string str = string.Format("{0}:{1}:{2}", DateDiff(DateInterval.Hour, start, Now).ToString.PadLeft(2, "0"), DateDiff(DateInterval.Minute, start, Now).ToString.PadLeft(2, "0"), DateDiff(DateInterval.Second, start, Now).ToString.PadLeft(2, "0"));
this.Invoke(new RunModifyText(ModifyText), str);

以上均通不过编译
我改不出来了
律己修心 2008-03-11
  • 打赏
  • 举报
回复
System.Threading.Thread.Sleep(10 * 1000);

原来这样就可以了
哈哈
律己修心 2008-03-11
  • 打赏
  • 举报
回复
Threading
这个我不会用

所以放进去也不好用

急啊
加载更多回复(12)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧