我有一个非常简单的表单,使用一个非常简单的类来处理一些事情。该类具有一个Class_Terminate
子程序来清理自身。然而,当关闭表单时,似乎无法触发该子程序。
MCVE:
表单Form1,一个名为Text0的文本框,没有进一步的控件。
Private myClass1 As Class1
Private Sub Form_Load()
Set myClass1 = New Class1
myClass1.InitForm Me
End Sub
类 Class1
Public theForm As Form
Private WithEvents SomeTextbox As TextBox
Public Sub InitForm(frm As Form)
Set theForm = frm
Set SomeTextbox = frm.Text0
End Sub
Private Sub Class_Terminate()
MsgBox "Class1 terminated succesfully"
End Sub
然而,当我关闭表单时,类终止处理程序并没有触发。
我尝试在类中取消设置Form对象:
Private Sub Form_Unload(Cancel As Integer)
Set myClass1.theForm = Nothing
End Sub
但是混乱随之而来:关闭表单后,类终止处理程序触发,但紧接着Access在没有任何错误信息的情况下崩溃!