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 Importar y exportar configuraciones en el menú Herramientas.Para obtener más información, vea Personalizar la configuración de desarrollo en Visual Studio.

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

Otros recursos

Crear un nuevos Windows Forms

Cuadros de diálogo en formularios Windows Forms