Hello.
To understand what's going on when the Dispose is called, take a look at:
http://msdn.microsoft.com/msdnmag/issues/07/07/CLRInsideOut/default.aspxfor an overview and to:
http://www.bluebytesoftware.com/blog/PermaLink.aspx?guid=88e62cdf-5919-4ac7-bc33-20c06ae539aefor an detailed expanation onIDisposable, finalizers and memory management.
Calling Dispose() on an object doesn't remove themanaged object from the memory. The managed object is removed only by the garbage collector, and onlywhenthere are no references left to it.
If you need to remove imediatelly amanaged object (I doubt you would really need this in your case),you need to make sure that there are no references left to it and after thatyou need to call GC.Collect() to force a garbage collection
After you have called Dispose on the parent user-control, have you tried to remove the control from the form's list of control, by doing yourForm.Control.Remove(yourParentControl) ?
Hope this helps...