You need to modify your sub main (or create one if you don't already have one) and use Application.Run() (note no parameters) to start an application-wide message loop that isn't dependant on any one form. The default behaviour is to have your message loop based on a main form, and therefore it shuts down when that form does.
This will solve your problem, but introduce a new one - when you have a message loop that doesn't depend on one form, you must then manually call Application.Exit() when you really do want your application to close.