0

更新:@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 突然出现然后程序关闭。

是什么导致了这种行为?

谢谢您的帮助!

4

0 回答 0