C#에서 입력 대화 상자 만들기
이 자습서에서는 VB.Net에서와 유사한 두 가지 방법을 사용하여 C#에서 입력 대화 상자를 만드는 방법을 보여줍니다.
입력 대화 상자는 메시지 프롬프트를 표시하고 사용자에게 입력을 요청하는 팝업 창입니다. 그런 다음 입력을 코드에서 사용할 수 있습니다.
C#에는 VB.NET의 입력 대화 상자 버전이 없으므로 두 가지 방법 중 하나를 사용할 수 있습니다. 첫 번째이자 가장 간단한 방법은 Microsoft.VisualBasic.Interaction
에 제공된 InputBox
를 사용하는 것입니다. 다른 방법은 System.Windows.Forms
및 System.Drawing
을 사용하여 사용자 정의 대화 상자를 만드는 것입니다.
Microsoft Visual Basic을 사용한 입력 대화 상자
C#에는 VB.NET과 같은 자체 버전의 입력 대화 상자가 없으므로 Microsoft.VisualBasic
에 대한 참조를 추가하고 InputBox
를 사용할 수 있습니다.
Microsoft.VisualBasic
을 활용하려면 먼저 아래 단계에 따라 프로젝트의 참조에 추가해야 합니다.
-
솔루션 탐색기로 이동
-
참조를 마우스 오른쪽 버튼으로 클릭
-
참조 추가
를 클릭합니다. -
왼쪽의
Assemblies
탭을 클릭합니다. -
Microsoft.VisualBasic.dll
파일을 찾아확인
을 클릭합니다.
참조를 성공적으로 추가한 후 코드에서 using 문을 사용할 수 있습니다.
using Microsoft.VisualBasic;
입력 상자 자체는 다음 매개변수를 제공하여 생성됩니다.
Prompt
: 창에 표시될 메시지입니다. 전달해야 하는 유일한 필수 매개변수입니다.Title
: 표시할 창 제목Default
: 입력 텍스트 상자의 기본값- X 좌표: Input Box 시작 위치의 X 좌표
- Y 좌표: Input Box 시작 위치의 Y 좌표
string input = Interaction.InputBox("Prompt", "Title", "Default", 10, 10);
이 입력 상자가 호출되면 프로그램은 나머지 코드를 계속 진행하기 전에 응답을 기다립니다.
예시:
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();
}
}
}
위의 예에서 화면의 왼쪽 상단 모서리에 나타나는 수수께끼 프롬프트가 있는 입력 상자를 만듭니다. 입력이 제출되면 값이 콘솔에 인쇄됩니다.
출력:
The letter w
C#
에서 Windows Forms를 사용한 사용자 지정 입력 대화 상자
입력 대화 상자를 만드는 또 다른 옵션은 사용자 지정 입력 대화 상자를 만드는 것입니다. 입력 대화 상자를 만드는 것의 한 가지 이점은 첫 번째 방법보다 더 많은 창을 사용자 지정할 수 있다는 것입니다. 아래 예제의 코드를 활용하려면 먼저 아래 단계를 사용하여 System.Windows.Forms.dll
및 System.Drawing.dll
에 대한 참조를 추가해야 합니다.
-
솔루션 탐색기로 이동
-
참조를 마우스 오른쪽 버튼으로 클릭
-
참조 추가
를 클릭합니다. -
왼쪽의
Assemblies
탭을 클릭합니다. -
Microsoft.VisualBasic.dll
및System.Drawing.dll
파일을 찾아확인
을 클릭합니다.
참조를 성공적으로 추가한 후 코드에서 using 문을 사용할 수 있습니다.
예시:
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;
}
}
}
위의 예에서 System.Windows.Forms
의 요소를 사용하고 개별적으로 대화 상자에 추가하는 사용자 지정 함수를 만들었습니다. 다른 요소를 하드 코딩할 수 있지만 매개변수를 추가하고 함수 내에서 참조하여 원하는 만큼 사용자 정의할 수도 있습니다. 대화 상자를 만들고 표시한 후 프로그램은 사용자가 콘솔 내에서 인쇄할 입력을 제공할 때까지 기다립니다.
출력:
the letter w