Créer une boîte de dialogue d'entrée en C#
- Boîte de dialogue d’entrée à l’aide de Microsoft Visual Basic
-
Boîte de dialogue d’entrée personnalisée à l’aide de Windows Forms 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 surOK
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
etSystem.Drawing.dll
et cliquez surOK
.
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