1

我有一个表单,我End在我的代码中使用了多次关闭。当我这样做时,我想做一个命令来保存设置,VarsToIni()它需要一些公共变量并将它们保存在一个 INI 文件中。我试过把它放在主窗口的 F​​ormClosing 中(它始终保持打开状态),这只适用于你按下 X 按钮而不是我的End语句关闭时。

4

3 回答 3

2

添加一个新的 Sub 并将调用替换为End对新 Sub 的调用:

Sub EndMe()
    VarsToIni()
    Application.Exit() 
End Sub

编辑:

正如 Dan 指出的那样,End()关闭应用程序是一种不好的方法,Application.Exit()是首选。

于 2013-02-19T17:23:18.280 回答
1

考虑使用Application.Exit()而不是End. FormClosing无论如何都可以调用它(并且您可以根据关闭方式来处理它)。

Private Sub frmMain_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    Select Case e.CloseReason
        Case CloseReason.ApplicationExitCall
            ' This is the result of Application.Exit()
            e.Cancel = False
        Case CloseReason.UserClosing
            ' This is the result of clicking the red X
            Select Case MessageBox.Show("Are you sure you wish to exit?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                Case DialogResult.Yes
                    e.Cancel = False
                Case DialogResult.No
                    e.Cancel = True
            End Select
        Case Else
            e.Cancel = False
    End Select
    If Not e.Cancel Then
        VarsToIni()
    End If
End Sub
于 2013-02-19T18:01:54.110 回答
0

尽管如此,我对您的问题感到很困惑:
这将关闭您的所有表格

For each x as Form in My.Application.OpenForms  
'You can then put your VarsToIni() here
 x.Close()
Next

注意:将此添加到您的导入中

Imports System.Windows.Forms
于 2013-02-19T17:13:17.897 回答