Share via


Cómo: Cerrar cuadros de diálogo y conservar los datos introducidos por el usuario

Puede establecer el modo como un cuadro de diálogo se cierra en tiempo de diseño o tiempo de ejecución. En tiempo de diseño, puede establecer la propiedad DialogResult para todos los controles Button en un cuadro de diálogo. En tiempo de ejecución, puede establecer la propiedad DialogResult para que pueda controlar dinámicamente las respuestas del usuario.

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 establecer la propiedad DialogResult de un control en tiempo de diseño

  1. Haga clic en el control Button para el que desee establecer la propiedad.

  2. En la ventana Propiedades, seleccione la propiedad DialogResult y abra la lista de valores de propiedades disponibles.

  3. Seleccione el resultado de cuadro de diálogo adecuado.

    Puede establecer el resultado del cuadro de diálogo para acciones realizadas por el usuario que no sean hacer clic en un control Button. Si el cuadro de diálogo no contiene botones para cerrarlo, puede establecer el resultado del cuadro de diálogo en tiempo de ejecución.

Para establecer la propiedad DialogResult de un control o formulario por medio de programación

  1. Navegue hasta el controlador de eventos o al método para el que desea establecer la propiedad DialogResult.

  2. Utilice el código similar al ejemplo de código siguiente.

    Public Sub InformationProcessed()
       ' This code will set the DialogResult for a form.
       Me.DialogResult = DialogResult.Yes
       ' OR
       ' This code will set the DialogResult for a button.
       Button1.DialogResult = DialogResult.No
    End Sub
    
    private void InformationProcessed() 
    {
       // This code will set the DialogResult for a form.
       DialogResult = DialogResult.Yes;
       // OR
       // This code will set the DialogResult for a button.
       button1.DialogResult = DialogResult.No;
    }
    
    private:
       void InformationProcessed()
       {
          // This code will set the DialogResult for a form.
          this->DialogResult = DialogResult::Yes;
          // OR
          // This code will set the DialogResult for a button.
          button1->DialogResult = DialogResult::No;
       }
    

    Aunque la configuración de la propiedad DialogResult puede hacer que el cuadro de diálogo se cierre automáticamente, podrá controlar el evento Click del control; el cuadro de diálogo se cerrará cuando termine de ejecutarse el código del controlador de eventos. Quizá desee detener el cierre del cuadro de diálogo mientras controla el evento Click.

  • En el controlador de eventos, cree código similar al ejemplo de código siguiente.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       Me.DialogResult = DialogResult.None
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e) 
    {
       DialogResult = DialogResult.None;
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e) 
       {
          this->DialogResult = DialogResult::None;
       }
    

    Nota

    Puede utilizar también el evento Closing del formulario para detener el cierre de un cuadro de diálogo.

Vea también

Tareas

Cómo: Crear cuadros de diálogo en tiempo de diseño

Cómo: Recuperar el resultado de los cuadros de diálogo

Conceptos

Introducción de datos por el usuario en los cuadros de diálogo

Otros recursos

Cuadros de diálogo en formularios Windows Forms