Modal Forms you created with ShowDialog are intended to be reused so they are not closed when you call Hide or click on the close button. See the documentation of ShowDialog.
You should not try Hide your modal form. ShowDialog makes the rest of application unreachable and now you hide the only part that is left available to the user, what are you trying to accomplish? .Net is nice enough to prevent you from shooting yourself on the foot, but as a result the code is not really enjoyable for reading. If you want to hide the form you should set DialogResult, maybe along with other data properties, so the caller of ShowDialog knows what the user did on the form and can decide what to do next.