일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- numpy
- Python
- Github
- Tkinter
- dataframe
- hive
- c#
- Java
- Google Excel
- string
- 파이썬
- google apps script
- GIT
- Redshift
- SQL
- Excel
- PySpark
- math
- array
- PANDAS
- django
- list
- Mac
- Kotlin
- matplotlib
- Google Spreadsheet
- Apache
- gas
- PostgreSQL
- Today
- Total
달나라 노트
C# : TextBox 본문
TextBox는 사용자가 문자를 직접 입력할 수 있도록 해주는 class입니다.
아래 코드를 봅시다.
using System;
using System.Windows.Forms;
class MyProgram
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
TextBox tb = new TextBox();
tb.Parent = fm;
Application.Run(fm);
}
}
위 코드를 실행하면 아래 이미지처럼 뭔가를 입력할 수 있는 칸이 생긴 것을 볼 수 있습니다.
이것을 TextBox라고 합니다.
위 코드를 해석해봅시다.
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
먼저 TextBox를 표시할 Window를 만들기 위해 Form class를 이용해서 fm 객체를 만듭니다.
Window의 가로 길이(Width)는 500으로, 세로 길이(Height)는 300으로 설정합니다.
TextBox tb = new TextBox();
tb.Parent = fm;
그리고 여기에 TextBox class를 이용해서 tb객체를 생성합니다.
이 부분에서 TextBox가 생성됩니다.
그리고 TextBox는 Window에 소속되어 표시되어야하므로 Parent를 fm으로 설정합니다.
Application.Run(fm);
그리고 Form을 실행합니다.
using System;
using System.Windows.Forms;
class MyProgram
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
TextBox tb = new TextBox();
tb.Parent = fm;
tb.Dock = DockStyle.Fill;
Application.Run(fm);
}
}
Dock 옵션을 DockStyle.Fill로 지정한 예시입니다.
DockStyle.Fill의 의미는 Window의 가로 길이에 꽉 채우라는 의미입니다.
using System;
using System.Windows.Forms;
class MyProgram
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
TextBox tb = new TextBox();
tb.Parent = fm;
tb.Text = "사과";
Application.Run(fm);
}
}
위 코드를 보면 tb.Text = "사과" 라는 부분이 있습니다.
TextBox에 입력되는 글자는 TextBox의 Text 속성에 저장됩니다.
따라서 위 코드는 TextBox의 Text 옵션을 사과로 설정함으로써 TextBox에 표시될 기본값을 사과로 설정한 것입니다.
위 코드를 실행시킨 결과 화면입니다.
사과라는 글자가 기본으로 입력되어있습니다.
아래 코드는 TextBox에 이벤트를 등록한 것입니다.
TextBox에 어떤 글자를 입력하고 Enter를 누르면 TextBox에 입력된 글자를 표시해주는 Event입니다.
using System;
using System.Windows.Forms;
class MyProgram
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 300;
TextBox tb = new TextBox();
tb.Parent = fm;
Label lbl = new Label();
lbl.Parent = fm;
lbl.Width = 100;
lbl.Height = 20;
lbl.Top = tb.Bottom;
lbl.Text = "Sample Label";
void tb_event_input(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
lbl.Text = tb.Text;
}
}
tb.KeyDown += new KeyEventHandler(tb_event_input);
Application.Run(fm);
}
}
위 코드를 실행시키면 아래와 같은 화면이 뜹니다.
그리고 사과를 입력하고 엔터를 눌러봅시다.
그러면 아래 이미지처럼 Label에 표시되는 글자도 사과로 바뀝니다.
void tb_event_input(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
lbl.Text = tb.Text;
}
}
tb.KeyDown += new KeyEventHandler(tb_event_input);
Event 설정 부분을 봅시다.
먼저 Enter키를 눌렀을 때 Event가 발생하도록 할 것이기 때문에 Event method의 인자로서 KeyEventArgs를 받았습니다.
그리고 조건문을 걸어서 e.KeyCode(입력된 KeyCode)가 Keys.Enter(엔터)이면 lbl.Text를 tb.Text(텍스트 박스에 입력된 텍스트)로 바꾸도록 한 것이죠.
이러한 Event method는 Enter 키가 눌릴 때 발생해야하므로 tb.KeyDown에 이벤트 등록을 해야합니다.
또한 이 이벤트는 마우스가 아닌 키보드가 눌릴 때 발생해야하므로 Event Handler도 KeyEventHandler를 사용하였습니다.
'C# > C#' 카테고리의 다른 글
C# : ShowDialog, Show (새로운 Window 띄우기) (0) | 2022.04.04 |
---|---|
C# : MenuStrip, ToolStripMenuItem (0) | 2022.04.04 |
C# : ListBox, ComboBox (0) | 2022.04.04 |
C# : RadioButton, GroupBox (0) | 2022.04.04 |
C# : CheckBox (0) | 2022.04.03 |