2

QueryCloseフォームイベントで起動するサブルーチンを持つVB6アプリケーションを移行しています。私の知る限り、このイベントはに存在しなくなりましたSystem.Windows.Forms

ブレークポイントを使用してテストしましたが、VB.NETフォームでイベントが実行される QueryCloseように、VB6フォームの右上隅にある赤い「X」をクリックすると起動します。FormClosing

私の質問は次のとおりです。FormClosingに最も近い同等の機能がありますかQueryClose、それとも別のイベントを使用する必要がありますか?

Private Sub UserForm_QueryClose(ByRef Cancel As Integer, ByRef CloseMode As Integer)
    writeToLog()
    writeRecentFoldersToFile(myTempFilePath & "Recent Folders.txt")
    writePageSetupDefaultsToFile(myTempFilePath & "Page Setup.txt")
    writeFormPositionToFile(myTempFilePath & "Form Position.txt")
    userformKillTimer(Me, Me.Text)
End Sub

このコードは元々VBA/VB6でしたが、ArtinSoftのVisual Basic Upgrade Companion(VBUC)を使用しました。VBUCは、同等のイベントがあるとは考えていなかったか、そのような変換を行うのに十分なほど賢くないようです。FWIW、私はMicrosoft Visual Basic2010Expressを使用しています。

4

2 に答える 2

2

FormClosingを使用することは、あなたが慣れているものに最も近いものだと思います。メッセージボックスを上げて、クリーンアップするものがあるかどうかを確認し、それに応じて閉じるを続行または中止します。

于 2012-05-29T04:10:59.707 に答える
2

私はあなたのコードをFormClosed()に入れます

あなたのコードは、ユーザーがフォームを閉じることをキャンセルすることを許可していません。それがするのは、いくつかのデータを保存することだけです。

于 2012-05-29T04:22:27.363 に答える