更新:@Mark Hall解决方案: 在Me.Close之后使用Exit Sub以防止在Closing事件进行时进一步执行sub ..
我正在尝试打开关闭表单的弹出窗口,用户可以决定是否确实要关闭表单。
因此我写道:
Private Sub Form1_FormClosing_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
e.Cancel = True 'Fenster wird nicht geschlossen
Dim DialogExit As DialogResult
DialogExit = MsgBox("Do you want to exit the setup process?", vbQuestion Or MsgBoxStyle.OkCancel, "Exit Setup?")
Select Case DialogExit
Case Windows.Forms.DialogResult.OK
Me._Result_ThisForm = Result_Form.Yes
e.Cancel = False
Case Else
'Just no exit
End Select
End Sub
但是当我从代码中的某个地方调用Me.Close时,表单就不会关闭但是会执行更多代码!
喜欢(代码中的某个地方):
If bErr = False Then
Me._Result_ThisForm = Result_Form.Goto_Next ' Just an additional info Enum
Me.Close()
End If
MsgBox("This should not pop up if bErr = false")
- > “退出设置?” MsgBox正确弹出,但是用户按“ok”退出程序,在“Me.Close()”之后突然出现一个MessageBox,然后程序关闭。
导致此行为的原因是什么?
感谢您的帮助!