Dispose releases the unmanaged resources and optionally releases the managed resources.
control.Dispose(disposing)
When the disposing parameter is True, this method releases all resources held by any managed objects that this format references. This method invokes the Dispose() method of each referenced object.
Note to Inheritors Dispose can be called multiple times by other objects. When overriding Dispose(Boolean), be careful not to reference objects that have been previously disposed of in an earlier call to Dispose.