怎么用.net做进度条呀?

linfeng8703 2008-03-18 01:11:15
怎么用.net做进度条呀?要用多线程吗?
...全文
1999 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
bayakala2008 2011-04-22
  • 打赏
  • 举报
回复
有用的是学习,再学习
shaofei830927 2011-04-21
  • 打赏
  • 举报
回复
必须多线程 否则根本没有进度条效果 主线程跑进度条 另一线程去干活
cy_paul 2011-04-21
  • 打赏
  • 举报
回复
第三步:在进度改变事件里更新进度条的值。

Private Sub back_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
Me.[进度条].Value = e.ProgressPercentage
Me.Label1.Text = String.Format("加载完成%{0}", e.ProgressPercentage)
End Sub


这样就可以了
cy_paul 2011-04-21
  • 打赏
  • 举报
回复
第二步:把你的长时间操作函数放到 DoWork 里执行,注意执行的时候不要动界面控件
Private Sub BackgoundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
长时间操作的函数()
End Sub
cy_paul 2011-04-21
  • 打赏
  • 举报
回复
不同意3楼的“生命”backgroundWorker 控件。
vb code :
dim BackgroundWorker1as BackgroudWorker = new BackgroudWorker()
BackgroundWorker1.WorkerReportsProgress = True
AddHandler BackgroundWorker1.DoWork, AddressOf BackgoundWorker1_DoWork
AddHandler BackgroundWorker1.RunWorkerCompleted, AddressOf Back_RunWorkerCompleted
AddHandler BackgroundWorker1.ProgressChanged, AddressOf back_ProgressChanged
BackgroundWorker1.RunWorkerAsync()
wtj2832 2011-04-21
  • 打赏
  • 举报
回复
首先是你web还是winform啊?
winform肯定要使用多线程啊,不然没反映,或者阻塞主线程
hechunsheng 2011-04-21
  • 打赏
  • 举报
回复
学习学习学习
988kook 2011-04-21
  • 打赏
  • 举报
回复
学习下
深海之蓝 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 llwinnner 的回复:]
不用这么麻烦,直接拖一个processbar控件,在属性中可以设定最大值,最小值
在程序中,的某些点,你认为可以让进度条增长的地方,就 processbar1.Value = 你想要的值,只要不超过最大值就行,在程序中分别用几个点,都这么写,每次value加一点
然后再程序的最后 再写上processbar1.Value = 最大值 就可以了,想重置就让value = 0。
[/Quote]
这个没问题的,你程序执行完了,进度条也走完了
liu4545533 2009-03-19
  • 打赏
  • 举报
回复
最好使用多现成 否则很难同步 会出现进度条存在 而动作已完成
niitnanfeng 2009-03-19
  • 打赏
  • 举报
回复
顶下。
深海之蓝 2009-03-19
  • 打赏
  • 举报
回复
不用这么麻烦,直接拖一个processbar控件,在属性中可以设定最大值,最小值
在程序中,的某些点,你认为可以让进度条增长的地方,就 processbar1.Value = 你想要的值,只要不超过最大值就行,在程序中分别用几个点,都这么写,每次value加一点
然后再程序的最后 再写上processbar1.Value = 最大值 就可以了,想重置就让value = 0。
niitnanfeng 2009-03-19
  • 打赏
  • 举报
回复
顶下。
hbmy9107lwt 2009-03-19
  • 打赏
  • 举报
回复
不用的,有个progress类供你使用,你通过调整他的maxvalue,...等几个属性值就ok了
Swanzy 2009-03-19
  • 打赏
  • 举报
回复
学习~:)
Alexwang198201 2008-03-20
  • 打赏
  • 举报
回复
学习一下
lovingkiss 2008-03-20
  • 打赏
  • 举报
回复

││博客空间:http://blog.csdn.net/lovingkiss
││资源下载:http://download.csdn.net/user/lovingkiss
││Email:loving-kiss@163.com [MSN也是这个]
││联系方式:Q66840199 项目、聊天、咨询、探讨、统统收费,呵呵......
╚---------------------------------------------------------------------------------------------------------ō*︻$▅▆▇◤
看我的资源,一行代码解决进度等待问题。。。
refactoring_lcj 2008-03-20
  • 打赏
  • 举报
回复
留名学习
linfeng8703 2008-03-20
  • 打赏
  • 举报
回复
backgroundWorker.ReportProgress((100 * i) / requestedCount, "Working...");
像这样的计算可以报告进度,那么像读写数据库之类的一系列操作怎么报告呢?
outh24 2008-03-18
  • 打赏
  • 举报
回复
最好是使用多线程
后台计算,这样界面可以保证实时响应。
加载更多回复(4)

110,538

社区成员

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

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

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