disposed object problem

I experience 5 months with maxscript/dotnet and have not resolved the next two issues.
How is the right way (method) to close a dotnet child form?
By default when the x(close) button is clicked on a child form the compiler disposes the object and by trying to open it again an error message occurs like:
“ dotNet runtime exception: Cannot access a disposed object ”
Behind ok, cancel ... buttons I use the hiding method to close the form and by showing it (not for first time) – unhide. Is this the right way doing that?
I am working on an application, that will run in 3dsmax 2009. After specific numbers of executions of the script, I receive the popular error garbage collection message and the compiler goes in troubles. Can this be fixed in max 2009?