1

Endコードで数回使用して閉じるフォームがあります。これを行うときに設定を保存するコマンドを実行したいと思いVarsToIni()ます。これは、いくつかのパブリック変数を取り、それらを INI ファイルに保存します。私はそれをメイン ウィンドウの FormClosing (全体を通して開いたまま) に配置しようとしましたが、これは私のEndステートメントではなく X ボタンを押して閉じた場合にのみ機能します。

4

3 に答える 3

2

新しい Sub を追加し、呼び出しを新しい Sub への呼び出しに置き換えますEnd

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 に答える