Este método se puede usar para mostrar un cuadro de diálogo modal en la aplicación. Cuando se llama a este método, el código que lo sigue no se ejecuta hasta que se ha cerrado el cuadro de diálogo. Al cuadro de diálogo se le puede asignar uno de los valores de la enumeración DialogResult asignándolo a la propiedad DialogResult de un Button del formulario o estableciendo la propiedad DialogResult del formulario en código. Así, este método devuelve este valor. El valor devuelto se puede usar para determinar el modo de procesar las acciones que se produjeron en el cuadro de diálogo. Por ejemplo, si el cuadro de diálogo se cerró y devolvió el valor DialogResult.Cancel mediante este método, se puede impedir la ejecución del código que sigue a la llamada a ShowDialog.
Cuando un formulario se muestra como un cuadro de diálogo modal, al hacer clic en el botón Cerrar (el botón que tiene una X en la esquina superior derecha del formulario) se oculta el formulario y se establece la propiedad DialogResult en DialogResult.Cancel. A diferencia de los formularios no modales, .NET Framework no llama al método Close cuando el usuario hace clic en el botón Cerrar de un cuadro de diálogo o establece el valor de la propiedad DialogResult. Lo que sucede es que se oculta el formulario, que se puede volver a mostrar sin crear otra instancia del cuadro de diálogo. Puesto que un formulario que se muestra como cuadro de diálogo no se cierra, se debe llamar al método Dispose del formulario cuando la aplicación ya no lo necesite.
Esta versión del método ShowDialog no especifica un formulario o un control como propietario. Cuando se llama a esta versión, la ventana activa actual se convierte en propietaria del cuadro de diálogo. Si desea seleccionar un propietario concreto, use la otra versión de este método.