Pues justamente el MessageBox es un tipo de formulario modal, es decir, que no te deja utilizar el formulario padre (desde el cual abres el formulario secundario modal) hasta que no lo cierras.
Es sencillo, sólo tienes que usar el método ShowDialog en vez de Show al abrir un formulario y pasarle lo siguiente:
Código vb:
Ver originalPrivate Sub abrirFormularioModal(ByVal sender As Object, ByVal e As System.EventArgs) Handles formularioPrincipal.Click
Dim formularioSecundario As New Form()
formularioSecundario.ShowDialog(Me); 'Le pasas una referencia (Me) al formulario principal (de esta manera indicas cual es el formulario padre)
End Sub
El código que haya después de ShowDialog no se ejecuta hasta que no hayas cerrado el formulario al que llamaste y esta llamada (ShowDialog) devuelve un valor que indica si aceptaste o cancelaste la acción en el formulario que habías abierto).
Saludos.