VB.NET - 执行Me.Close后的代码

时间:2013-04-12 16:39:08

标签: vb.net

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

导致此行为的原因是什么?

感谢您的帮助!

0 个答案:

没有答案