100 分问一个,超简单的问题

kkgolf 2005-12-24 10:57:01
我想让程序退出时,让用户确认一下,代码如下
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("真的要退出吗", vbYesNo + vbQuestion, "") = vbNo Then

Exit Sub
End If
End Sub
是这样写的吗?为什么我退行的时候,不管点"是"或"否",程序都会退出来!
请各位达人,帮一下忙...
问题解决,马上给分
...全文
276 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
nxzhhm 2005-12-27
  • 打赏
  • 举报
回复
Dim SureQ As Integer
SureQ = MsgBox("真的退出该系统吗(Y/N)? ", vbYesNo + 32, "请确认...")
If SureQ = 6 Then
Cancel = 0
Else
Cancel = -1
End If
coyihisaso 2005-12-27
  • 打赏
  • 举报
回复
wyf2(创新):首先是执行QueryUnload事件,然后是terminate事件,最后才是unload事件
说错了,应该是执行卸载命令后先执行QueryUnload事件,然后Unload事件,最后是Terminate事件,如果执行结束命令不执行任何事件直接退出!
IamDeane 2005-12-26
  • 打赏
  • 举报
回复
倒都是正确答案,我也顺便捎一个
Private Sub Form_Unload(Cancel As Integer)
Dim myval As Integer
myval = MsgBox("真的要退出给我搜吗?", vbYesNo)
'
If myval = vbYes Then

End
Else
Cancel = 1
End If
End Sub
我的比较麻烦,呵呵
paullbm 2005-12-26
  • 打赏
  • 举报
回复
Cancel = True

这一句是关键!
itlive 2005-12-26
  • 打赏
  • 举报
回复
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("真的要退出吗", vbYesNo + vbQuestion, "") = vbNo Then
Cancel = True
End If
End Sub
damofengbo 2005-12-26
  • 打赏
  • 举报
回复
都能实现
clear_zero 2005-12-26
  • 打赏
  • 举报
回复
1.放在queryunload里面
2.cancel=1
就好了
samwzhang 2005-12-26
  • 打赏
  • 举报
回复
还是放在QueryUnload中比较好,一般如果放在Unload中的话可能会关闭掉一些资源的。
zou19820704 2005-12-26
  • 打赏
  • 举报
回复
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If MsgBox("真的要退出吗", vbYesNo + vbQuestion, "") = vbNo Then
Cancel=True
Exit Sub
End If
End Sub
bbhere 2005-12-26
  • 打赏
  • 举报
回复
应该用QueryUnload
QueryUnload事件在unload事件之前
coyihisaso 2005-12-26
  • 打赏
  • 举报
回复
rainstormmaster(暴风雨 v2.0) 是在你的事件中用代码修正你的逻辑错误
rainnygo(行雨)推荐了你应该用的事件方法
cuizm(射天狼 http://www.j2soft.cn/)的程序标准且易看懂
WallesCai(曾经沧海难为水,除却巫山不是云。此情可待成追忆,只是当时已惘然。) 的程序简约
IamDeane(冷冷的风(Deane)) 的程序啰嗦
推荐是猎人(射天狼)的程序,其它人您应该答谢,特别是第一个给你回帖的
以上就是方案,你自己看着办吧,希望你能学习到你想要的

chengqiu_123 2005-12-25
  • 打赏
  • 举报
回复
详细情况可以去MSDN看看~!
Oreo.M 2005-12-25
  • 打赏
  • 举报
回复
来晚了!呵呵!
射天狼 2005-12-25
  • 打赏
  • 举报
回复
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("真的要退出吗", vbYesNo + vbQuestion, "") = vbNo Then
Cancel = True
End If
End Sub

==========================
免费的学习、交流、源码、工具下载网站,欢迎大家访问!
http://www.j2soft.cn/
okay2003 2005-12-25
  • 打赏
  • 举报
回复
用QueryUnload事件,因为它是标志即将发生Unload的事件。
MicroHkXia 2005-12-25
  • 打赏
  • 举报
回复
代码是对了
有请问在Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)过程里
和Private Sub Form_Unload(Cancel As Integer)过程里 加代码都可以..
两者有什么区别呢??..
Summer006 2005-12-25
  • 打赏
  • 举报
回复
不让结束程序,就修改cancel为1即可。
xiazh8282 2005-12-25
  • 打赏
  • 举报
回复
支持 rainnygo(儒雅メ书生)



^_^

province_ 2005-12-25
  • 打赏
  • 举报
回复
都正确,我来捡剩饭的。
熊孩子开学喽 2005-12-25
  • 打赏
  • 举报
回复
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("真的要退出吗", vbYesNo + vbQuestion, "") = vbNo Then Cancel = True
End Sub
加载更多回复(6)

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧