Cómo utilizar la propiedad DialogResult en Visual C#


Para una versión de Microsoft Visual Basic .NET de este artículo, consulte 315711 .

EN ESTA TAREA

Resumen


En este artículo se muestra cómo utilizar la propiedad DialogResult en formularios Windows Forms. Puede utilizar la propiedad DialogResult para crear cuadros de diálogo en aplicaciones para Windows. volver al principio

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005
En este artículo se da por supuesto que está familiarizado con los temas siguientes:
  • Aplicaciones para Windows
  • Microsoft Visual C#
volver al principio

Utilizar la propiedad DialogResult

En este ejemplo se utiliza la propiedad DialogResult para determinar el botón que se debe hacer clic para cerrar un formulario.
  1. Cree un nuevo proyecto de aplicación Windows en Visual C# .NET o en Visual C# 2005. De forma predeterminada, Form1 se agrega al proyecto.
  2. En la ventana de diseño de Form1, agregue un controlButton . Cambie la propiedad Name abtnShowForm2y, a continuación, cambie la propiedad Textpara Mostrar Form2.
  3. En el menú proyecto , haga clic en Agregar formulario Windows Form para agregar un nuevo formulario a este proyecto. Utilice este formulario como un cuadro de diálogo.
  4. Haga clic en Abrir. Se crea un nuevo formulario denominado Form2 . Nota: En Visual Studio 2005, haga clic en Agregar.
  5. Agregue dos controles Button a Form2. Se agregan Button1 y Button2 . Establecer las propiedades de estos botones como sigue:

    Button1

    • Nombre: btnOK
    • DialogResult: Aceptar
    • Texto: Aceptar

    Button2

    • Nombre: btnCancel
    • DialogResult: Cancelar
    • Texto: Cancelar
  6. Form2 está completa. Observe que ha completado estos pasos mediante el Diseñador de Windows Forms y la ventana Propiedades. No copie ni escriba ningún código.
  7. Volver a la ventana de diseño de Form1. Haga doble clic en el control btnShowForm2 . Visual Studio .NET IDE abre la ventana código de Form1 y crea automáticamente el prototipo de función para el evento btnShowForm2_Click :
    private void btnShowForm2_Click(object sender, System.EventArgs e){}
  8. Agregue el código siguiente al procedimiento de evento btnShowForm2_Click :
    DialogResult dr = new DialogResult ();Form2  frm2 = new Form2();dr = frm2.ShowDialog();if ( dr == DialogResult.OK )    MessageBox.Show ("User clicked OK button");else if ( dr == DialogResult.Cancel)    MessageBox.Show ("User clicked Cancel button");
Form2 se muestra como un cuadro de diálogo modal. Al hacer clic en Aceptar o en Cancelar, se muestra un cuadro de mensaje con los detalles del botón que el usuario hizo clic. volver al principio

Lista de código completa

Form1.cs

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace MyApplication{/// <summary>/// Summary description for Form1./// </summary>public class Form1 : System.Windows.Forms.Form{private System.Windows.Forms.Button btnShowForm2;/// <summary>/// Required designer variable./// </summary>private System.ComponentModel.Container components = null;public Form1(){//// Required for Windows Form Designer support.//InitializeComponent();//// TODO: Add any constructor code after InitializeComponent call.//}/// <summary>/// Clean up any resources being used./// </summary>protected override void Dispose( bool disposing ){if( disposing ){if (components != null) {components.Dispose();}}base.Dispose( disposing );}#region Windows Form Designer generated code/// <summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor./// </summary>private void InitializeComponent(){this.btnShowForm2 = new System.Windows.Forms.Button();this.SuspendLayout();// // btnShowForm2// this.btnShowForm2.Location = new System.Drawing.Point(72, 40);this.btnShowForm2.Name = "btnShowForm2";this.btnShowForm2.Size = new System.Drawing.Size(112, 23);this.btnShowForm2.TabIndex = 0;this.btnShowForm2.Text = "Show Form2";this.btnShowForm2.Click += new System.EventHandler(this.btnShowForm2_Click);// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);this.ClientSize = new System.Drawing.Size(292, 266);this.Controls.AddRange(new System.Windows.Forms.Control[] {  this.btnShowForm2});this.Name = "Form1";this.Text = "Form1";this.ResumeLayout(false);}#endregion/// <summary>/// The main entry point for the application./// </summary>[STAThread]static void Main() {Application.Run(new Form1());}private void btnShowForm2_Click(object sender, System.EventArgs e){DialogResult dr = new DialogResult ();Form2 frm2 = new Form2();dr = frm2.ShowDialog();if ( dr == DialogResult.OK )MessageBox.Show ("User clicked OK button");else if ( dr == DialogResult.Cancel)MessageBox.Show ("User clicked Cancel button");}}}

Form2.cs

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;namespace MyApplication{ /// <summary>/// Summary description for Form2./// </summary>public class Form2 : System.Windows.Forms.Form{private System.Windows.Forms.Button btnOK;private System.Windows.Forms.Button btnCancel;/// <summary>/// Required designer variable./// </summary>private System.ComponentModel.Container components = null;public Form2(){//// Required for Windows Form Designer support.//InitializeComponent();//// TODO: Add any constructor code after InitializeComponent call//}/// <summary>/// Clean up any resources being used./// </summary>protected override void Dispose( bool disposing ){if( disposing ){if(components != null){components.Dispose();}}base.Dispose( disposing );}#region Windows Form Designer generated code/// <summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor./// </summary>private void InitializeComponent(){this.btnOK = new System.Windows.Forms.Button();this.btnCancel = new System.Windows.Forms.Button();this.SuspendLayout();// // btnOK// this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;this.btnOK.Location = new System.Drawing.Point(40, 224);this.btnOK.Name = "btnOK";this.btnOK.TabIndex = 0;this.btnOK.Text = "OK";// // btnCancel// this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;this.btnCancel.Location = new System.Drawing.Point(208, 224);this.btnCancel.Name = "btnCancel";this.btnCancel.TabIndex = 1;this.btnCancel.Text = "Cancel";// // Form2// this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);this.ClientSize = new System.Drawing.Size(292, 273);this.Controls.Add(this.btnCancel);this.Controls.Add(this.btnOK);this.Name = "Form2";this.Text = "Form2";this.ResumeLayout(false);}#endregion}}
Nota: El código ha cambiado en Visual Studio 2005. Cuando crea un proyecto de formularios Windows Forms, Visual C# agrega un formulario al proyecto de forma predeterminada. Este formulario se denomina Form1. Los dos archivos que lo representan se denominan Form1.cs y Form1.designer.cs. Escriba el código en Form1.cs. El archivo designer.cs es donde el Diseñador de Windows Forms escribe el código que implementa todas las acciones que realizó arrastrando y colocando controles desde el cuadro de herramientas. Para obtener más información acerca de cómo el Diseñador de Windows Forms en Visual C# 2005, visite el siguiente sitio Web de Microsoft:

Comprobar que funciona

  1. Presione CTRL + F5 para ejecutar el proyecto. Se muestra Form1.
  2. Haga clic en Mostrar Form2.
  3. Para cerrar el formulario, haga clic enAceptar o Cancelar. Aparece un mensaje con los detalles del botón que hizo clic.
    • Si hizo clic en Aceptar, aparecerá el título siguiente:
      Usuario hace clic en el botón Aceptar
    • Si hizo clic enCancelar, aparecerá el título siguiente:
      Usuario hace clic en el botón Cancelar
volver al principio