When Does A Form-Level Object Instance Cease To Exist?

When Does A Form-Level Object Instance Cease To Exist?

You have an object variable declared in the Declarations section ofa form. In the Form_Load event, you create an instance of a class and assignit to the variable. However, when your form unloads, the objectclass’ Terminate event does not fire because the form has not yet ceasedto exist. Simply unloading a form does not cause the form object to terminate.As long as the form object exists, it references the class. Set the form-levelvariable to nothing to cause it to unload.As a way to remember this, treat a form object like any other object.Assign it to a form variable when you want to create it. This makes obviousthe need to delete the reference when you are done. Thus, instead of writing:

 MyForm.Show vbModalSet MyForm = Nothing

you should write:

 Dim FormRef as MyFormSet FormRef = New MyFormFormRef.Show vbModalSet FormRef = Nothing

This makes it clear that you are dropping an object reference in code.


Share the Post: