我做了一个测试程序,后面要做大量的工作,但是没有界面,这个时候我想显示一个提示信息,告诉用户,程序在运行,不是死了,请等待,如图:
http://www.zhong-cheng.cn/backzhong/testt.jpg
现在是提示出来了,但是后面程序不执行;难道这个也要多线程马?没有做过,所以问问?
http://www.zhong-cheng.cn/backzhong/testt.jpg
现在是提示出来了,但是后面程序不执行;难道这个也要多线程马?没有做过,所以问问?
if !完成 then
label1.caption="程序正在处理请等待....."
else
label1.caption="程序完成"
end if
去年我有回答过类似的问题,当时我给楼主作了一个示例工程,刚才找了找,还在硬盘上,如果搂主需要的话可以和我QQ联系:71429660
当你的程序需要运行很长的时间时,建议用DoEvents 语句,
从当前程序中跳出来,可以让CPU处理其它事件。而进度条就可以根据你的程序运行时间或量度来变化。
On Error Resume Next
runmsg_Form1.Show
Call 你的运行代码
DoEvents
Unload runmsg_Form1
'MsgBox "运行完毕!"
End Sub
设置Form1.BorderStyle = 0,去掉标题栏
把窗口调到和pb1一样大Private Sub Command1_Click()
On Error Resume Next
Form1.Show ,me
For i = 0 To 100000
Form1.pb1.Value = i * (Form2.pb1.Max - Form2.pb1.Min) / 100000
Call 你的运行代码
Next
Unload Form1
End Sub
建一个窗体作为提示信息(里面加label,picture等),比如:runmsg_Form1Private Sub Command1_Click()
runmsg_form1.Show
DoEventsFor i = 1 To 10000000
s = s + i
Next
DoEvents
Unload runmsg_form1
MsgBox "运行完毕!"
End Sub
建一个窗体作为提示信息(里面加label,picture等),比如:runmsg_Form1Private Sub Command1_Click()
runmsg_form1.Show
DoEventsFor i = 1 To 10000000
s = s + i
NextDoEvents
Unload runmsg_form1
MsgBox "运行完毕!" & "1到10000000的和是:" & s
End Sub
rtn = SetWindowPos(frmWait.hWnd, -1, 0, 0, 0, 0, 3)
frmWait.Show
...你要实行的代码
Unload frmWait
'frmWait为自己建立的一个等待窗体
Private Sub autotest_Click()
runtest.Show 1
autot.Show
End Subruntest代码:
Dim i As Integer
Private Sub Form_Load()
i = 1
End Sub
Private Sub Timer1_Timer()
i = i + 1
Dim j As Integer
j = i Mod 6
Select Case j
Case 0
Label2.Caption = "¡ñ"
Case 1
Label2.Caption = "¡ñ¡ñ"
Case 2
Label2.Caption = "¡ñ¡ñ¡ñ"
Case 3
Label2.Caption = "¡ñ¡ñ¡ñ¡ñ"
Case 4
Label2.Caption = "¡ñ¡ñ¡ñ¡ñ¡ñ"
Case 5
Label2.Caption = "¡ñ¡ñ¡ñ¡ñ¡ñ¡ñ"
End SelectEnd Sub