vb做进度条问题
发布网友
发布时间:2024-02-02 01:04
我来回答
共4个回答
热心网友
时间:2024-11-17 00:11
上面程序均有问题,1。在于CD变量取值一直为0,所以程序无法停下。 2。在于停下时,进度条宽度不是3135,而是3215.控制不准确。
主要原因为控件的最小尺寸不是0,而是15。所以在累加步进增量后的值不是要求的3135.
所以做进度条一般的步进增量为1%。首先要确定进度条的宽度,然后是步进增量必须是100的整倍数。 上面的程序如果选择3015为宽度控制精度就好了。
Dim cd, a As Integer
Private Sub Form_Load()
a=(3015-15)/100
Label2.Width = 0
Label2.BackColor = vbBlue
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
cd=label2.width
If cd = 3015 Then
MsgBox "到了"
Timer1.Enabled = False
Else
Label2.Width = Label2.Width + a
End If
DoEvents
End Sub
热心网友
时间:2024-11-17 00:11
在if
i
=
100
then。。。。。。。。end
里加一句timer1.enabled
=
false
因为进度条的progressbar1.value
=100,计时器还增加当然是"无效的属性值"了。
private
sub
timer1_timer()
i
=
i
+
5
if
i
=
100
then
timer1.enabled
=
false
command2.visible
=
true
command1.visible
=
false
label1.caption
=
"整理完成,请点击下一步!"
end
if
progressbar1.value
=
i
end
sub
热心网友
时间:2024-11-17 00:12
没怎么看懂题意,不知道下面能不能实现你的要求,用一个timer控件实现,一开始label2的visible属性为false,进步条PB1的max属性为100
Private
Sub
Timer1_Timer()
PB1.Value
=
PB1.Value
+
1
If
PB1.Value
=
50
Then
Label1.Caption
=
"123"
If
PB1.V发讥篡客诂九磋循单末alue
=
100
Then
Timer1.Enabled
=
False
Label1.Visible
=
False
Label2.Visible
=
True
Label2.Caption
=
"456"
End
If
End
Sub
热心网友
时间:2024-11-17 00:12
Dim cd, a As Integer
Private Sub Form_Load()
a = 100
Label2.Width = 0
Label2.BackColor = vbBlue
Timer1.Interval = 100
Timer1.Enabled = True
cd = Label2.Width
End Sub
Private Sub Timer1_Timer()
cd = Label2.Width '*******************
If cd >= 3135 Then '******************
MsgBox "到了"
Timer1.Enabled = False
Else
Label2.Width = Label2.Width + a
End If
DoEvents
End Sub