Cómo: Mostrar formularios Windows Forms modales y no modales
Los formularios y los cuadros de diálogo pueden ser modales o no modales. Un formulario o cuadro de diálogo modal debe cerrarse u ocultarse para que el usuario pueda continuar trabajando con el resto de la aplicación. Para obtener más información sobre cómo trabajar con cuadros de diálogo, vea Introducción de datos por el usuario en los cuadros de diálogo.
Es conveniente que los cuadros de diálogo que muestran mensajes importantes sean siempre modales. El cuadro de diálogo Acerca de de Visual Studio es un ejemplo de un cuadro de diálogo modal. MessageBox es un formulario modal que puede usar.
Los formularios no modales permiten alternar el foco entre dos formularios sin necesidad de cerrar el formulario inicial. El usuario puede continuar trabajando en otro lugar, en cualquier aplicación, mientras se muestra el formulario.
Los formularios no modales son más difíciles de programar, porque el acceso por parte de los usuarios se produce en un orden impredecible. Se ha de mantener la aplicación en un estado coherente con independencia de lo que haga el usuario. Con frecuencia, las ventanas de herramientas se muestran de forma no modal. El cuadro de diálogo Buscar, accesible desde el menú Edición de Visual Studio, es un ejemplo de cuadro de diálogo no modal. Utilice formularios no modales para mostrar comandos o información utilizados con frecuencia.
Nota
Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.
Para mostrar un formulario como cuadro de diálogo modal
Llame al método ShowDialog.
El ejemplo de código siguiente indica cómo se muestra un cuadro de diálogo modal.
Dim frmAbout as New Form() ' Display frmAbout as a modal dialog frmAbout.ShowDialog()
//Display frmAbout as a modal dialog Form frmAbout = new Form(); frmAbout.ShowDialog();
Form ^ frmAbout = gcnew Form(); //Display frmAbout as a modal dialog frmAbout->ShowDialog();
El método ShowDialog tiene un argumento opcional, owner, que se puede utilizar para especificar una relación entre elemento primario y elemento secundario para un formulario. Por ejemplo, cuando el código del formulario principal muestra un cuadro de diálogo, se puede pasar Me (en Visual Basic) o this (en Visual C#) como propietario del cuadro de diálogo para establecer el formulario principal como propietario, tal como se muestra en el siguiente fragmento de código.
Private Sub mnuAbout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuAbout.Click Dim f As New Form() f.ShowDialog(Me) End Sub
private void mnuAbout_Click(object sender, System.EventArgs e) { Form f = new Form(); f.ShowDialog(this); }
private: void mnuAbout_Click(System::Object ^ sender, System::EventArgs ^ e) { Form ^ f = gcnew Form(); f->ShowDialog(this); }
Para mostrar un formulario como cuadro de diálogo no modal
Llame al método Show.
El ejemplo siguiente indica cómo se muestra un cuadro de diálogo Acerca de en formato no modal.
Dim f As New Form() ' Display f as a modeless dialog. f.Show()
//Display f as a modeless dialog Form f= new Form(); f.Show();
Form ^ f = gcnew Form(); //Display f as a modeless dialog f->Show();
Nota
Si se muestra un formulario de forma modal, el código que sigue al método ShowDialog no se ejecuta hasta que se cierra el cuadro de diálogo. Sin embargo, cuando un formulario se muestra de forma no modal, el código que sigue al método Show se ejecuta inmediatamente después de que se muestre el formulario.
Vea también
Tareas
Cómo: Recuperar la información de un cuadro de diálogo selectivamente mediante múltiples propiedades
Tutorial: Recuperar la información de un cuadro de diálogo colectivamente mediante objetos
Referencia
Información general sobre formularios Windows Forms