Créer une boîte de dialogue d'entrée en C#

Fil Zjazel Romaeus Villegas 12 octobre 2023
  1. Boîte de dialogue d’entrée à l’aide de Microsoft Visual Basic
  2. Boîte de dialogue d’entrée personnalisée à l’aide de Windows Forms en C#
Créer une boîte de dialogue d'entrée en C#

Ce didacticiel montrera comment créer une boîte de dialogue d’entrée en C# en utilisant deux méthodes différentes similaires à celles de VB.Net.

Une boîte de dialogue d’entrée est une fenêtre contextuelle qui affiche une invite de message et demande l’entrée d’un utilisateur. L’entrée peut ensuite être utilisée dans le code.

Il n’existe pas de version de la boîte de dialogue d’entrée de VB.NET en C#, vous pouvez donc utiliser l’une des deux méthodes. La première et la plus simple consiste à utiliser la InputBox fournie dans Microsoft.VisualBasic.Interaction. L’autre méthode consiste à créer votre propre boîte de dialogue personnalisée à l’aide de System.Windows.Forms et System.Drawing.

Boîte de dialogue d’entrée à l’aide de Microsoft Visual Basic

Comme C# n’a pas sa propre version d’une boîte de dialogue d’entrée comme celle de VB.NET, vous pouvez ajouter une référence à Microsoft.VisualBasic et utiliser sa InputBox.

Pour utiliser Microsoft.VisualBasic, vous devez d’abord l’ajouter aux références du projet en suivant les étapes ci-dessous.

  • Accédez à l’explorateur de solutions
  • Clic droit sur Références
  • Cliquez sur Add Reference
  • Cliquez sur l’onglet Assemblies à gauche
  • Trouvez le fichier Microsoft.VisualBasic.dll et cliquez sur OK

Après avoir ajouté avec succès la référence, vous pouvez ensuite utiliser son instruction using dans votre code.

using Microsoft.VisualBasic;

La zone de saisie elle-même est créée en fournissant les paramètres suivants.

  • Prompt : Le message à afficher dans la fenêtre. C’est le seul paramètre obligatoire qui doit être passé.
  • Title : Le titre de la fenêtre à afficher
  • Default : La valeur par défaut de la zone de saisie de texte
  • Coordonnée X : la coordonnée X de la position de démarrage de la zone de saisie
  • Coordonnée Y : la coordonnée Y de la position de démarrage de la zone de saisie
string input = Interaction.InputBox("Prompt", "Title", "Default", 10, 10);

Une fois cette zone de saisie appelée, le programme attendra une réponse avant de continuer avec le reste du code.

Exemple:

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();
    }
  }
}

Dans l’exemple ci-dessus, nous créons une zone de saisie avec une invite de devinette qui apparaît dans le coin supérieur gauche de l’écran. Une fois l’entrée soumise, la valeur est imprimée sur la console.

Production :

The letter w

Boîte de dialogue d’entrée personnalisée à l’aide de Windows Forms en C#

Une autre option pour créer une boîte de dialogue de saisie consiste à créer votre propre boîte de dialogue de saisie personnalisée. L’un des avantages de la création d’une boîte de dialogue de saisie est qu’elle vous permet de personnaliser davantage la fenêtre que la première méthode. Pour utiliser le code dans l’exemple ci-dessous, vous devez d’abord ajouter une référence à System.Windows.Forms.dll et System.Drawing.dll en suivant les étapes ci-dessous.

  • Accédez à l’explorateur de solutions
  • Clic droit sur Références
  • Cliquez sur Add Reference
  • Cliquez sur l’onglet Assemblies à gauche
  • Trouvez les fichiers Microsoft.VisualBasic.dll et System.Drawing.dll et cliquez sur OK.

Après avoir ajouté avec succès la référence, vous pouvez utiliser leurs instructions using dans votre code.

Exemple:

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;
    }
  }
}

Dans l’exemple ci-dessus, nous avons créé une fonction personnalisée qui utilise des éléments de System.Windows.Forms et les ajoute individuellement à la boîte de dialogue. Bien que vous puissiez coder en dur les différents éléments, vous pouvez également ajouter des paramètres et les référencer dans la fonction pour avoir autant de personnalisation que vous le souhaitez. Après avoir construit et affiché la boîte de dialogue, le programme attend que l’utilisateur fournisse une entrée pour l’imprimer dans la console.

Production :

the letter w

Article connexe - Csharp GUI