달나라 노트

C# : TextBox 본문

C#/C#

C# : TextBox

CosmosProject 2022. 4. 4. 20:16
728x90
반응형

 

 

 

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를 사용하였습니다.

 

 

 

 

 

 

728x90
반응형

'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
Comments