我正在迁移VB6应用程序,该应用程序具有一个触发QueryClose
窗体事件的子例程。据我所知,这个事件不再存在于System.Windows.Forms
。VB.NET中的QueryClose窗体事件等效事件
我测试了一个断点,并且QueryClose
在您点击VB6窗体右上角的红色“X”时触发,就像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升级伴侣(VBUC)放。 VBUC显然没有认为有相同的事件发生,或者没有足够的智能来进行这种转换。 FWIW,我正在使用Microsoft Visual Basic 2010 Express。
VBA不是VB6。 VBA没有任何形式,也许你真的意味着Excel? VBA只在其主机中有生命。 VB6在表单中没有QueryClose,仅在DataReports中。 *这是一个DataReport吗?或者你的意思是QueryUnload?不要滥用/错误标记这些帖子。甚至不应该有* VBA标签,而是标签,例如Excel-VBA,Access-VBA等等,因为它们都在不同的海域游泳。 – Bob77
那么,它最初是VBA--一个用于AutoCAD的宏。我必须首先将形式_(或其他你称之为的)移植到VB6中,然后才能将它们转换为VB.NET。 – Wingman4l7
@BobRiemersma:当然VBA有UserForms,可能与VB6中的稍有不同。 – Cylian