Remarks from Form.Close()
When a form is closed, all resources created within the object are
closed and the form is disposed. You can prevent the closing of a form
at run time by handling the Closing event and setting the Cancel
property of the CancelEventArgs passed as a parameter to your event
handler. If the form you are closing is the startup form of your
application, your application ends.
The two conditions when a form is not disposed on Close is when (1) it
is part of a multiple-document interface (MDI) application, and the
form is not visible; and (2) you have displayed the form using
ShowDialog. In these cases, you will need to call Dispose manually to
mark all of the form's controls for garbage collection. NoteNote
When the Close method is called on a Form displayed as a modeless
window, you cannot call the Show method to make the form visible,
because the form's resources have already been released. To hide a
form and then make it visible, use the Control.Hide method. Caution
noteCaution
Prior to the .NET Framework 2.0, the Form.Closed and Form.Closing
events are not raised when the Application.Exit method is called to
exit your application. If you have validation code in either of these
events that must be executed, you should call the Form.Close method
for each open form individually before calling the Exit method.
This clearly states that the form should close and application should end unless you do something else we cannot see in your example.