1

我想问一下如何使新表单作为消息框对话框的替代品,以防止表单在 VB.NET 中关闭?

好吧,我创建了一个新表单,当单击 [X] 按钮时,它会弹出并确认用户是否真的要退出程序。

如果单击 [X] 按钮将弹出的表单我设计的类似于消息对话框 Yes/No,我使用两个图片框作为表单的 Yes 和 No。

我在将弹出的表单中是和否图片框中使用了此代码:

Private Sub picxyes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxyes.Click

        Main.Close()
        about.Close()
        Me.Close()

    End Sub

Private Sub picxno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxno.Click
        Me.Close()

这在形式关闭事件中:

e.Cancel = true
exitgame.Show()

'exitgame is the name of the form that will popup when [x] is click.

我还尝试在 Private Sub picxyes_Click 下添加一个 e.Cancel = False 但它显示错误。

我需要知道如何使用这个图片框(picxyes 和 picxno),当点击 picxyes 时,e.Cancel 必须变为 false 并且必须关闭整个表单,否则,当点击 picxno 时,只有 exitgame 表单会关闭?请分享任何可能对此有所帮助的想法。谢谢你。

4

1 回答 1

1

MessageBox.Show() 显示一个对话框。您还想创建一个对话框:

Private Sub picxyes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxyes.Click
    Me.DialogResult = DialogResult.OK
End Sub

Private Sub picxno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picxno.Click
    Me.DialogResult = DialogResult.Cancel
End Sub

现在,您可以像使用 MessageBox 一样在 FormClosing 事件处理程序中简单地使用 DialogResult:

    If e.CloseReason = CloseReason.UserClosing Then
        Using dlg = New ExitGame
            If dlg.ShowDialog() = DialogResult.OK Then e.Cancel = True
        End Using
    End If
于 2013-12-07T16:45:04.877 回答