Close Without End

From HashVB
Revision as of 13:15, 8 March 2006 by Dee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
float
 This article is based on Visual Basic 6. Find other Visual Basic 6 articles.

So, your application isn't shutting down properly? You may think there is an easy way around this:

End

No! End is the equivalant of stopping your car by driving it into a brick wall (stolen from a DevX newsgroup years ago :o). It does NO clean up at all, it stops the process dead. This is especially bad if you are doing any form of database or hardware access.

"What is likely to cause my application to stay running?"

An application will shut down cleanly when and only when:

All forms are unloaded. All code has stopped running. The first item is the most common cause, and there is a relatively easy way to find the culprit. Try running the following code in the Immediate/Debug window:

For Each Form In Forms: Print Form.Name: Next

This will print the name of all the currently loaded forms. If these forms shouldn't be loaded, then you need to track down why they are still loaded. Any code that references the user interface of a form will cause it to be loaded and left.

If you are going to have lots of forms open and you just want to shut them all down regardless, you can use a variation of the code above:

Dim Form As Form
For Each Form In Forms
  Unload Form
Next

Happy endings all round...