在VB.NET中等效的QueryClose表单事件

时间:2012-05-29 03:29:14

标签: vb.net winforms vb6 vb6-migration

我正在迁移一个VB6应用程序,该应用程序有一个子程序可以触发QueryClose表单事件。据我所知,System.Windows.Forms中不再存在此事件。

我使用断点进行了测试,当您单击VB6表单右上角的红色“X”时,QueryClose会触发,就像FormClosing事件应该在VB中一样。 NET表格。

我的问题是: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 Basic 2010 Express。

2 个答案:

答案 0 :(得分:2)

我想说使用FormClosing它是最接近你习惯的东西。提高MessageBox以提示是否有要清理的内容,然后继续或相应地中止关闭。

答案 1 :(得分:2)

我会把你的代码放在FormClosed()

您的代码不允许用户取消表单关闭,它所做的就是保存一些数据。