VB中点击一个按钮程序运行,如何弹出个显示个消息框提示正在运行,再点击另外一个按钮让他停止运行

PrivateSubCommand1_Click()DimshuzhiAsDoubleDimshuzhi1AsDoubleForshuzhi=1To60000Forshu... Private Sub Command1_Click()
Dim shuzhi As Double
Dim shuzhi1 As Double
For shuzhi = 1 To 60000
For shuzhi1 = 1 To 20000
Next shuzhi1
Next shuzhi
Text1.Text = "完成"
End Sub

Private Sub Command2_Click()
Text1.Text = ""
取消运行的程序该怎么写
End Sub
上面是个循环程序,点击Command1后程序进入循环状态,这时怎么使他弹出个无按钮的信息提示框,显示正在运行四个字。点击Command2后让他停止循环事件,Command2的程序该如何写。
展开
 我来答
风的誓言21
2011-02-24 · TA获得超过614个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:516万
展开全部
如果我要是告诉你编程思路,你肯定会把脑袋都拍烂,你就会明白编程,靠的是什么?编程思想!哈哈哈,只有想不到的,没有做不到的。

你是想弹出无数个提示框,点击另外一个按钮就让它停止弹出对话框对不对?

很简单啊,你在循环的时候加入一个判断条件就可以了(对不对?)条件满足才循环,条件一旦不满足就不循环就是了。把你的程序改成如下:
Dim Switch as Boolean '这条很重要,定义一个全局变量,作用就是判断.
Private Sub Form_Load()
Switch = True
End Sub

Private Sub Command1_Click()
Dim shuzhi As Double
Dim shuzhi1 As Double
For shuzhi = 1 To 60000
For shuzhi1 = 1 To 20000
if Switch=False Then Exit Sub
Next shuzhi1
Next shuzhi
Text1.Text = "完成"
End Sub

Private Sub Command2_Click()
Text1.Text = ""
Switch=False
'取消运行的程序该怎么写
End Sub

是不是晃然大悟,代码我没调试,你自己试一下,知道编程思想,实现起来我相信你有更好的办法的.
difficultdd
2011-02-24
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
Private stopIt As Boolean

Private Sub Command1_Click()
Dim shuzhi As Double
Dim shuzhi1 As Double
Text1.Text = "正在运行"
For shuzhi = 1 To 60000
If stopIt Then Exit Sub
DoEvents
For shuzhi1 = 1 To 20000
Next shuzhi1
Next shuzhi
Text1.Text = "完成"
End Sub

Private Sub Command2_Click()
Text1.Text = "中断运行"
stopIt = True
End Sub
追问
这个最靠谱,但是还是没实现弹出个信息提示正在运行的代码,那个弹出信息提示框怎么实现呢?
追答
因为显示了 MsgBox 就不能点 Form1 的任何键,不能点 Command2,我用 Text1 代替 MsgBox 了,如果你不愿意,那就要自己做一个 MsgBox!就用 Form2 来做吧:

Private stopIt As Boolean

Private Sub Command1_Click()
Dim shuzhi As Double
Dim shuzhi1 As Double
Text1.Text = "正在运行"
Form2.Left = Form1.Left + 3000 '自己在 Form2 弄点 Text,Command 控件,像 MsgBox 那样
Form2.Top = Form1.Top + 1000
Form2.Show
For shuzhi = 1 To 60000
If stopIt Then Exit Sub
DoEvents
For shuzhi1 = 1 To 20000
Next shuzhi1
Next shuzhi
Text1.Text = "完成"
End Sub

Private Sub Command2_Click()
Text1.Text = "中断运行"
Form2.Hide
stopIt = True
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlq2p
2011-02-24 · TA获得超过466个赞
知道小有建树答主
回答量:495
采纳率:44%
帮助的人:56.9万
展开全部
先定义一个外部变量比如 Dim bStop As Boolean
然后在你的循环里面加上个暂停的循环。
While (bStop)
'sleep之类的延时函数吧
End While
然后在其他的地方通过修改bStop 的值就可以暂停或者开启你的循环了。
没VB的编程环境了,其他语言是要把你的那个循环加到线程里,不然执行你的循环时候动不了其他的操作(卡住),所以你还要去研究下线程。不过不知道VB里面用doevents是不是可以不用使用线程,你自己测试下吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moxsone
2011-02-24 · TA获得超过3333个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1504万
展开全部
基本上只靠VB无法实现,因为VB不支持多线程,所以进入循环后程序会一直卡在显示第二个窗口的地方,此时即使设置了第二个窗口非模态显示,取消按钮还是不能点击的.直到程序运行完毕.
除非用VC写个多线程的COM组件,然后在线程中显示窗口就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式