VB中如何为事件设进度条显示?

PrivateSubCommand1_Click()DimAAsDoubleDimBAsDoubleDimCAsDoubleDimDForA=1To1000000ForB... Private Sub Command1_Click()
Dim A As Double
Dim B As Double
Dim C As Double
Dim D
For A = 1 To 1000000
For B = 1 To 10000000
C = B + A
Next B
Next A
MsgBox C
End Sub
上面这段程序,
我怎么通过设进度条的进度显示代码??????
设进度条显示代码运行进度?
希望各位热心的朋友提供答案,不胜感激啊!!!!
展开
 我来答
liuekj
推荐于2016-08-08 · TA获得超过163个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:0
展开全部
1、点击系统菜单“工具”->“选项”,调出选项对话匡后选择“控件”页,再选择ActiveX控件,选定列表栏里的Microsoft ProgressBar Control控件,一般里面有两个版本的,分别是V5.0(SP2)和v6.0。建议用V5.0(SP2)版的,这个控件的风格可以根据WIN的主题风格的变化而变化,而V6.0是固定的一个格子一个格子的跳。
选定后,前面的小匡内会有个‘X’,点确定。

Private Sub Command1_Click()
Dim A As Double
Dim B As Double
Dim C As Double
Dim D

Dim p As Single

ProgressBar1.Min = 0
ProgressBar1.Max = 1000
ProgressBar1.Value = ProgressBar1.Min
ProgressBar1.Scrolling = ccScrollingSmooth

' 定义 进度条 最小值,最大值,当前进度 和样式

Dim Mx As Long

Mx = 1000000

For A = 1 To Mx
For B = 1 To 10000000
C = B + A
Next B

If A Mod (Mx / ProgressBar1.Max) = 1 Then

' 不需要每次都做, 只要进行到某个时候做一次就好了.

' 计算出当前进度
ProgressBar1.Value = A * ProgressBar1.Max \ Mx

DoEvents
End If
Next A

ProgressBar1.Value = ProgressBar1.Max
' 最后, 进度=进度条最大值.

MsgBox C

End Sub

你试运行的循环数量大 程序可能会有点慢, 要等他一下才看到效果,
或者把内循环设置成 100 效果会好一点
floatingsnows
2010-10-19 · TA获得超过1798个赞
知道小有建树答主
回答量:1318
采纳率:66%
帮助的人:421万
展开全部
D = Format(1000000 * 1000000 / (a * b) / 100, "0.0") & "%"
DoEvents
这是计算进度的 但是会溢出~~~你把数值改小点就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoyinggi
2010-10-19 · TA获得超过127个赞
知道小有建树答主
回答量:138
采纳率:50%
帮助的人:80.7万
展开全部
1、点击系统菜单“工具”->“选项”,调出选项对话匡后选择“控件”页,再选择ActiveX控件,选定列表栏里的Microsoft ProgressBar Control控件,一般里面有两个版本的,分别是V5.0(SP2)和v6.0。建议用V5.0(SP2)版的,这个控件的风格可以根据WIN的主题风格的变化而变化,而V6.0是固定的一个格子一个格子的跳。
选定后,前面的小匡内会有个‘X’,点确定。
2、新建一个表单,在数据环境里添加一个表,假如是个有138条记录的成绩库,要求从第一条记录开始一条一条的计算总分,科目只有三科语、数、外。(当然,这个目的一条replace all命令就可以解决了)
3、在表单设计器内点“查看类”即第二个按钮,在弹出的菜单栏里选择“ActiveX控件”,表单设计器的控件栏内就有了进度条的控件
4、在表单内添加这个进度条控件,暂命名为“Ole1”,注意调整进度条的长和宽。该控件的VISIBLE属性选择.F.,即运行表单后,未计算总分时,进度条是不可见的。
5、在表单内添加一个命令按钮,用这个按钮激活程序计算总分和进度条的实时显示
6、命令按钮的Click事件里添加以下代码
go top

if reccount()>0 //如果表不为空执行
thisform.ole1.visible=.T. // 显示进度条
thisform.ole1.max=reccount() // 进度条的最大值为表的记录数
else
return //如果表无记录返回
endif

do while !eof()
thisform.ole1.value=recno() // 进度条的数值根据当前记录号变化
replace 总分 with 语+数+外 // 计算当前记录的总分
skip // 当前记录下移一条
enddo

thisform.ole1.visible=.F.
thisform.ole1.value=0

7、保存运行表单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式