2013-12-18 62 views
0

我试了下面的两个代码,它给了我相同的结果。那按钮,产生另一个MsgBox然后在关闭之前再次点击yes,而没有按钮工作得很好。我该如何解决这个问题?它为什么会产生两个MsgBox?

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 

    'Dim result = MessageBox.Show("Are You Sure You Want To Quit?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) 
    'If result = DialogResult.No Then 
    ' Application.Exit() 
    'Else 
    ' e.Cancel = True 
    'End If 

    Select Case MessageBox.Show("Are You Sure You Want To Quit?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) 
     Case MsgBoxResult.Yes 
      Application.Exit() 
     Case MsgBoxResult.No 
      e.Cancel = True 
    End Select 
End Sub 

回答

1

我不能看到MsgBoxResult是从哪里来的,但这应该工作:

Dim MsgBoxResult As DialogResult 
MsgBoxResult = MessageBox.Show(_ 
        "Are You Sure You Want To Quit?", _ 
        Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) 

Select Case MsgBoxResult 
    Case DialogResult.Yes 
     ' Do nothing - let it close! 
     'Application.Exit() 
    Case DialogResult.No 
     e.Cancel = True 
End Select 

或一起胶水:

Dim MsgBoxResult As DialogResult = MessageBox.Show("Are You Sure You Want To Quit?", 
     Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) 

通过调用Application.Exit你调用新的FormClose事件在此之前完成。假设这是一个MainForm,只需让应用程序正常关闭即可。

+0

application.Exit毁了这一切。谢谢 – AdorableVB

1

尝试,这也

e.Cancel = (System.Windows.Forms.MessageBox.Show("Are You Sure You Want To Quit?", Me.Text, Windows.Forms.MessageBoxButtons.YesNo, Windows.Forms.MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.No) 
相关问题