Crear un cuadro de diálogo de entrada en C#

Fil Zjazel Romaeus Villegas 12 octubre 2023
  1. Cuadro de diálogo de entrada usando Microsoft Visual Basic
  2. Cuadro de diálogo de entrada personalizado mediante Windows Forms en C#
Crear un cuadro de diálogo de entrada en C#

Este tutorial demostrará cómo crear un cuadro de diálogo de entrada en C# usando dos métodos diferentes similares a los de VB.Net.

Un cuadro de diálogo de entrada es una ventana emergente que muestra un mensaje y solicita la entrada de un usuario. La entrada se puede usar en el código.

No existe una versión del cuadro de diálogo de entrada de VB.NET en C#, por lo que puede utilizar uno de dos métodos. La primera y más simple es usar el InputBox provisto en Microsoft.VisualBasic.Interaction. El otro método es creando su propio cuadro de diálogo personalizado usando System.Windows.Forms y System.Drawing.

Cuadro de diálogo de entrada usando Microsoft Visual Basic

Como C# no tiene su propia versión de un cuadro de diálogo de entrada como el de VB.NET, puede agregar una referencia a Microsoft.VisualBasic y usar su InputBox.

Para utilizar Microsoft.VisualBasic, primero debe agregarlo a las referencias del proyecto siguiendo los pasos a continuación.

  • Haga clic derecho en Referencias
  • Haga clic en Add Reference
  • Haga clic en la pestaña Assemblies a la izquierda
  • Busque el archivo Microsoft.VisualBasic.dll y haga clic en OK.

Después de agregar con éxito la referencia, puede usar su declaración de uso en su código.

using Microsoft.VisualBasic;

El cuadro de entrada en sí se crea proporcionando los siguientes parámetros.

  • Prompt: El mensaje que se mostrará dentro de la ventana. Este es el único parámetro obligatorio que debe pasarse.
  • Título: El título de la ventana que se mostrará
  • Default: el valor predeterminado del cuadro de texto de entrada
  • Coordenada X: la coordenada X de la posición de inicio del cuadro de entrada
  • Coordenada Y: la coordenada Y de la posición de inicio del cuadro de entrada
string input = Interaction.InputBox("Prompt", "Title", "Default", 10, 10);

Una vez que se ha llamado a este cuadro de entrada, el programa esperará una respuesta antes de continuar con el resto del código.

Ejemplo:

using System;
using Microsoft.VisualBasic;

namespace VisualBasic_Example {
  class Program {
    static void Main(string[] args) {
      // Create the input dialog box with the parameters below
      string input =
          Interaction.InputBox("What is at the end of the rainbow?", "Riddle", "...", 10, 10);

      // After the user has provided input, print to the console
      Console.WriteLine(input);
      Console.ReadLine();
    }
  }
}

En el ejemplo anterior, creamos un cuadro de entrada con un indicador de adivinanza que aparece en la esquina superior izquierda de la pantalla. Después de enviar la entrada, el valor se imprime en la consola.

Producción :

The letter w

Cuadro de diálogo de entrada personalizado mediante Windows Forms en C#

Otra opción para crear un cuadro de diálogo de entrada es crear su propio cuadro de diálogo de entrada personalizado. Una ventaja de crear un cuadro de diálogo de entrada es que le permite personalizar la ventana más que el primer método. Para utilizar el código en el ejemplo a continuación, primero debe agregar una referencia a System.Windows.Forms.dll y System.Drawing.dll siguiendo los pasos a continuación.

  • Haga clic derecho en Referencias
  • Haga clic en Add Reference.
  • Haga clic en la pestaña Assemblies a la izquierda
  • Busque los archivos Microsoft.VisualBasic.dll y System.Drawing.dll y haga clic en OK.

Después de agregar con éxito la referencia, puede usar sus instrucciones de uso en su código.

Ejemplo:

using System;
using System.Windows.Forms;
using System.Drawing;

namespace CustomDialog_Example {
  class Program {
    static void Main(string[] args) {
      // Initialize the input variable which will be referenced by the custom input dialog box
      string input = "...";
      // Display the custom input dialog box with the following prompt, window title, and dimensions
      ShowInputDialogBox(ref input, "What is at the end of the rainbow?", "Riddle", 300, 200);

      // Print the input provided by the user
      Console.WriteLine(input);

      Console.ReadLine();
    }

    private static DialogResult ShowInputDialogBox(ref string input, string prompt,
                                                   string title = "Title", int width = 300,
                                                   int height = 200) {
      // This function creates the custom input dialog box by individually creating the different
      // window elements and adding them to the dialog box

      // Specify the size of the window using the parameters passed
      Size size = new Size(width, height);
      // Create a new form using a System.Windows Form
      Form inputBox = new Form();

      inputBox.FormBorderStyle = FormBorderStyle.FixedDialog;
      inputBox.ClientSize = size;
      // Set the window title using the parameter passed
      inputBox.Text = title;

      // Create a new label to hold the prompt
      Label label = new Label();
      label.Text = prompt;
      label.Location = new Point(5, 5);
      label.Width = size.Width - 10;
      inputBox.Controls.Add(label);

      // Create a textbox to accept the user's input
      TextBox textBox = new TextBox();
      textBox.Size = new Size(size.Width - 10, 23);
      textBox.Location = new Point(5, label.Location.Y + 20);
      textBox.Text = input;
      inputBox.Controls.Add(textBox);

      // Create an OK Button
      Button okButton = new Button();
      okButton.DialogResult = DialogResult.OK;
      okButton.Name = "okButton";
      okButton.Size = new Size(75, 23);
      okButton.Text = "&OK";
      okButton.Location = new Point(size.Width - 80 - 80, size.Height - 30);
      inputBox.Controls.Add(okButton);

      // Create a Cancel Button
      Button cancelButton = new Button();
      cancelButton.DialogResult = DialogResult.Cancel;
      cancelButton.Name = "cancelButton";
      cancelButton.Size = new Size(75, 23);
      cancelButton.Text = "&Cancel";
      cancelButton.Location = new Point(size.Width - 80, size.Height - 30);
      inputBox.Controls.Add(cancelButton);

      // Set the input box's buttons to the created OK and Cancel Buttons respectively so the window
      // appropriately behaves with the button clicks
      inputBox.AcceptButton = okButton;
      inputBox.CancelButton = cancelButton;

      // Show the window dialog box
      DialogResult result = inputBox.ShowDialog();
      input = textBox.Text;

      // After input has been submitted, return the input value
      return result;
    }
  }
}

En el ejemplo anterior, creamos una función personalizada que usa elementos de System.Windows.Forms y los agrega individualmente al cuadro de diálogo. Si bien puede codificar los diferentes elementos, también puede agregar parámetros y hacer referencia a ellos dentro de la función para tener tanta personalización como desee. Después de construir y mostrar el cuadro de diálogo, el programa espera que el usuario proporcione una entrada para imprimirla dentro de la consola.

Producción :

the letter w

Artículo relacionado - Csharp GUI