积极答复者
求助“进度条”的实现

问题
-
请教一下进度条(ProgressBar控件)的实现。之前没有接触过进度条,不知道怎么实现。
我有多个数据处理的Form,而且每次处理数据的时间都不确定。我是想在每个Form处理数据时弹出进度条(ProgressBar控件的属性Style = Marquee,windows登录界面的那种模式),数据处理完后隐藏进度条。
我一个想法是新建一个子窗口,添加一个Label(显示“正在处理数据...”字样)控件和一个ProgressBar控件。在其它处理数据的Form中调用这个子窗口来显示进度条,数据处理完后隐藏进度条。这里我又出来问题——显示进度条的同时该子窗口的框框也被显示出来了,这样不美观。
请教教我怎么做!请说详细一点(比如哪些属性要特别注意改的)或者给个完全的例子,我比较笨,不容易理解。
谢谢~
答案
-
你好!
你再仔细阅读一下代码,或是查看一下其他属性设置!
我用你的代码是可以正常显示进度条的动画的!
另外,这两行可以去掉,比较多余,Close会在内部调用Dispose方法的,sf=Nothing也没有比要,当后面不在使用sf的情况下,垃圾收集器就认为这个对象是不可达的(也就是可以回收的),不用手动来做这个工作!
sf.Dispose()
sf = Nothing
周雪峰- 已标记为答案 ChiYauModerator 2011年3月3日 20:17
全部回复
-
老师,你好!
帮我看看是怎么回事:
进度条的界面和上面主题一样,然后在ProgressBar控件中写成这样:
Public Class ProgressForm Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click With ProgressBar1 Application.DoEvents() End With End Sub End Class
然后在主窗口的事件处理中是这样:
Private Sub btnDataAnalysis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDataAnalysis.Click ''显示进度条 Dim sf As ProgressForm = New ProgressForm() sf.Show() ProgressForm.Refresh() '事件处理...... ''关闭隐藏进度条 sf.Close() sf.Dispose() sf = Nothing End Sub
可是在处理数据时还是不能显示进度条(只显示一个白色的影子)。
这是怎么回事?
-
你好!
你再仔细阅读一下代码,或是查看一下其他属性设置!
我用你的代码是可以正常显示进度条的动画的!
另外,这两行可以去掉,比较多余,Close会在内部调用Dispose方法的,sf=Nothing也没有比要,当后面不在使用sf的情况下,垃圾收集器就认为这个对象是不可达的(也就是可以回收的),不用手动来做这个工作!
sf.Dispose()
sf = Nothing
周雪峰- 已标记为答案 ChiYauModerator 2011年3月3日 20:17