Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 形式.闭幕式_Wpf_Vb.net - Fatal编程技术网

Wpf 形式.闭幕式

Wpf 形式.闭幕式,wpf,vb.net,Wpf,Vb.net,我正在研究一种方法,通过提出以下问题来关闭应用程序,但它不起作用 任何帮助都很棒 Private Sub MainWindow_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing Dim result As Integer result = MessageBox.Show("Are you want to close", "Exit", MessageBoxButton.YesNo, MessageBoxIm

我正在研究一种方法,通过提出以下问题来关闭应用程序,但它不起作用

任何帮助都很棒

Private Sub MainWindow_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing


Dim result As Integer
result = MessageBox.Show("Are you want to close", "Exit", 
MessageBoxButton.YesNo, MessageBoxImage.None)
If (result = DialogResult.No) Then
    e.Cancel = True
Else
    Application.Exit()
End If

End Sub
这应该起作用:

Private _handle As Boolean = True
Private Sub MainWindow_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
    If _handle = True Then
        e.Cancel = True

        Dim result = MessageBox.Show("Are you want to close?", "Exit", MessageBoxButton.YesNo, MessageBoxImage.None)
        If (result = MessageBoxResult.Yes) Then
            _handle = False
            Environment.Exit(0)
        End If
    End If
End Sub

好的,这个问题已经有了一个公认的答案,但我想我应该再添加一个,一行,因为OP似乎只是在做
MessageBox
检查。我觉得没有必要在
关闭事件中使用
布尔值或
应用程序.Exit()
环境.Exit(0)

Private Sub MainWindow_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
    If Not MessageBox.Show("Are you sure you want to close?", "Exit", MessageBoxButton.YesNo, MessageBoxImage.None) = MessageBoxResult.Yes Then e.Cancel = True
End Sub

这里的代码中有一些错误。无论如何,如果启动窗体是
main window
,请删除
Application.Exit()
部分,并在项目程序中将
关闭模式设置为上次窗体关闭时的
。否则,该消息将显示两次。好的,谢谢@Jimi,这已修复,但现在问题是DialogResult。否给我一个错误,表示“否”不是“布尔”的成员。您的代码应该是:
If MessageBox.Show(“是否要关闭?”,“退出”,MessageBoxButtons.YesNo,MessageBoxIcon.None)=DialogResult.No然后e.Cancel=如果
,则为真结束。但是,这里有人在回答。看到代码了吗。哇,非常感谢@到处都是乱七八糟的东西!来吧,玛丽,别让我吊死。。。解释该评论。
如果不是MessageBox.Show(“您确定要关闭吗?”,“退出”,MessageBoxButtons.YesNo,MessageBoxIcon.None)=DialogResult.Yes然后e.Cancel=True
是这是我的答案。你想辩论吗?不,这不是你的答案。你的答案不正确。魔鬼在于细节。