首页 > 解决方案 > 如何防止表单在 btnClose_Click 中关闭

问题描述

我试图阻止用户在 vb.net 中DialogResult.No关闭表单。True我也试过e.cancel=true了,但在btnClose_click. 我提到不是FormClosingEventArgs。我想把它放进去btnClose_Click

从 OP 注释复制的代码;

Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
    If CustomMessageBox.Show("Are You Sure?", Buttons.YesNo, Icons.Question,
                          AnimateStyle.ZoomIn) = Windows.Forms.DialogResult.Yes Then
        If Windows.Forms.DialogResult.Yes Then
            ' ---Close The Form
        End If
    ElseIf Windows.Forms.DialogResult.No Or Windows.Forms.DialogResult.None Then
        ' ---Not Closing the Form
    End If
End Sub

标签: vb.net

解决方案


您需要使用 FormClosing 事件(或在 NET 2.0 之前关闭)。此事件发生在关闭事件之前,可以取消。

Private Sub Form1_Closing(sender As Object, e As FormClosingEventArgs ) Handles Me.FormClosing
    If CustomMessageBox.Show("Are You Sure?", Buttons.YesNo, Icons.Question,
                          AnimateStyle.ZoomIn) = Windows.Forms.DialogResult.Yes Then
       e.Cancel = true ' <<<< close event will not occur, form stays open
    End If
End Sub

表单关闭事件


推荐阅读