【问题标题】:How to handle a form close event in vb.net如何在 vb.net 中处理表单关闭事件
【发布时间】:2011-04-27 14:00:02
【问题描述】:

我使用了下面的代码,但它没有显示 msgbox。这段代码有什么问题?

Private Sub frmSimple_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
       Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)
       If result = DialogResult.Yes Then
        me.Close()
       End If
End Sub

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

    此代码在表单关闭后运行。
    根据您显示表单的方式,它可能根本不会被处理。

    如果要取消关闭,则需要处理FormClosing 事件并将e.Cancel 设置为True

    【讨论】:

    • If result = DialogResult.No Then e.Cancel = True
    • 单击您的表单,然后在属性面板中单击事件,然后双击表单关闭事件。这将提示您在表单关闭时添加代码...在这里您添加代码
    • 出现错误:“取消”不是“System.Windows.Forms.FormClosedEventArgs”的成员
    • 抱歉,没注意到。像魅力一样工作:D
    【解决方案2】:
      Private Sub frmProgramma_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If MessageBox.Show("Are you sur to close this application?", "Close", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
        Else
          e.Cancel = True
        End If
      End Sub
    

    或者这就是我每次反复使用它的方式......

    【讨论】:

      【解决方案3】:

      使用FormClosing 事件。 MSDN

      【讨论】:

        【解决方案4】:
         Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)
        
               If result = vbYes Then
                me.Close()
               End If
        

        【讨论】:

          【解决方案5】:
          If MessageBox.Show("¿Exit?", "Application, MessageBoxButtons.YesNo, _
                                  MessageBoxIcon.Question) = DialogResult.No Then
                      e.Cancel = True
                  End If
          

          【讨论】:

            【解决方案6】:

            我觉得更干净简洁!

            If MsgBox("Are you sure you want to Exit ?", vbYesNo) = vbNo Then e.Cancel = True
            

            【讨论】:

              【解决方案7】:

              此代码可能不是“高效”的,但允许用户在关闭之前保存他们的工作,如果他们按“否”则关闭表单,或者如果他们按“取消”则返回到表单而不关闭。

                      Dim dialog As DialogResult
                      dialog = MessageBox.Show("Save before closing?", "Exit", MessageBoxButtons.YesNoCancel)
                      If dialog = DialogResult.Yes Then
                          'Put a save file dialog here or Button.PerformClick() if you already have a save button programmed
                      ElseIf dialog = DialogResult.No Then
                          Application.Exit()
                      ElseIf dialog = DialogResult.Cancel Then
                          e.Cancel = True
                      End If
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-02-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2023-03-14
                相关资源
                最近更新 更多