更新:@Mark Hall 的解决方案:在 Me.Close 之后使用 Exit Sub 以防止在 Closing 事件进行时进一步执行子..
我试图在关闭表单时打开一个弹出窗口,用户可以在其中决定他是否真的要关闭表单。
因此我写道:
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 正确弹出,但用户按“确定”退出程序,“Me.Close()”之后的 MessageBox 突然出现然后程序关闭。
是什么导致了这种行为?
谢谢您的帮助!