嗯,放弃,重试,和忽略。。。

yinzs 2009-06-20 01:15:36
窗体A中调用了函数F,F在执行过程中弹出提示框,选择Retry就重载一下F,选择Ignore就退出F,这个都没有问题,但是选择Abort,我原意是关闭窗口的。
me.dispose()
关闭是关闭了,为什么后面的代码还在执行?要怎样才能让他终止后面的过程呢?
...全文
75 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxlinda123 2009-06-20
  • 打赏
  • 举报
回复
学习了
yinzs 2009-06-20
  • 打赏
  • 举报
回复
谢谢先,我研究一下。:-)
bw555 2009-06-20
  • 打赏
  • 举报
回复
改动很小的,这样

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not f() Then Return
f1()
End Sub
Public Function f() As Boolean
Dim myresp As DialogResult
Try
'你的处理过程
Return True
Catch ex As Exception
myresp = MsgBox("失败!", MsgBoxStyle.AbortRetryIgnore)
Select Case myresp
Case vbAbort
Me.Dispose()
Return False
Case vbRetry
Return f()
Case vbIgnore
Return True
End Select
End Try
End Function
yinzs 2009-06-20
  • 打赏
  • 举报
回复
这样不好。
古今多少事 2009-06-20
  • 打赏
  • 举报
回复
那你将f()、f1()都放进Try……Catch中。
bw555 2009-06-20
  • 打赏
  • 举报
回复
可以把f改成function 返回值为布尔型变量
需要退出的时候返回false
继续执行的时候返回true

调用f的时候可以这样
if not f() then return
yinzs 2009-06-20
  • 打赏
  • 举报
回复
你加exit sub 他还是会执行F1,F2的。
yinzs 2009-06-20
  • 打赏
  • 举报
回复
A
public sub
……
F()
F1()
……
end sub


F
……
Catch ex As Exception
myResp = MsgBox("失败!", MsgBoxStyle.AbortRetryIgnore)
Select Case myResp
Case vbAbort
me.dispose()
Case vbRetry
F()
Case vbIgnore
Exit Sub
End Select
End Try
……


我想直接跳到A的末尾去,然后关闭窗口。


bw555 2009-06-20
  • 打赏
  • 举报
回复
Catch ex As Exception
myResp = MsgBox("失败!", MsgBoxStyle.AbortRetryIgnore)
Select Case myResp
Case vbAbort
me.dispose()
exit sub
Case vbRetry
F()
exit sub
Case vbIgnore
Exit Sub
End Select
End Try
yinzs 2009-06-20
  • 打赏
  • 举报
回复
不是啊,exit sub 跳出的是F函数本身啊,后面的F1,F2还是照样执行的。
bw555 2009-06-20
  • 打赏
  • 举报
回复
或者可以这样
过程用exit sub
函数用exit function
bw555 2009-06-20
  • 打赏
  • 举报
回复
return就跳出函数了,可以去试下
yinzs 2009-06-20
  • 打赏
  • 举报
回复
这个是F()的代码,我是想直接跳出去,窗体中所有的代码都不执行了,
bw555 2009-06-20
  • 打赏
  • 举报
回复
me.dispose()后面加上return就不执行后面代码了
古今多少事 2009-06-20
  • 打赏
  • 举报
回复
Catch ex As Exception
myResp = MsgBox("失败!", MsgBoxStyle.AbortRetryIgnore)
Select Case myResp
Case vbAbort
me.dispose()
exit try
Case vbRetry
F()
Case vbIgnore
Exit Sub
End Select
End Try
……

是这个意思吗?
yinzs 2009-06-20
  • 打赏
  • 举报
回复
close也是一样
古今多少事 2009-06-20
  • 打赏
  • 举报
回复
关闭不是用me.close()吗?

???
yinzs 2009-06-20
  • 打赏
  • 举报
回复
……
Catch ex As Exception
myResp = MsgBox("失败!", MsgBoxStyle.AbortRetryIgnore)
Select Case myResp
Case vbAbort
me.dispose()
Case vbRetry
F()
Case vbIgnore
Exit Sub
End Select
End Try
……

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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