我正在遷移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