In this case, the CloseConnection and Dispose calls are not necessary, it will be done automatically after the form is closed.
A better practice is to hide the form so when it is reopened, it will come up faster. If you include the VisibleChanged event handler as on the MainForm, then when form is hidden, it will pause the communications for that form.