Button 클릭 시 TextBox 내용으로 Label 내용 설정 [WinForm with C#]

안녕하세요. 언제나 휴일에 언휴예요.

이번 실습은 Button을 클릭하였을 때 TextBox에 입력한 내용으로 Label 내용을 설정하는 프로그램 제작입니다.

1. 컨트롤 배치
2. 버튼 클릭 이벤트 핸들러 등록
3. 소스 코드 구현

1. 컨트롤 배치

컨트롤 배치
그림 1. 컨트롤 배치

위 그림처럼 TextBox(tbox_msg), Button(btn_set), Label(lb_msg)를 배치하고 속성 창에서 Name을 설정하세요.

2. 버튼 클릭 이벤트 핸들러 등록

버튼을 더블 클릭하면 자동으로 버튼 클릭 이벤트 핸들러를 등록해 줍니다.

혹은 속성 창에서 btn_set 버튼의 Click 이벤트 핸들러를 등록하세요.

클릭 이벤트 핸들러 등록
그림 2. btn_set 버튼의 Click 이벤트 핸들러 등록

3. 소스 코드 구현

Form1.cs 파일의 btn_set의 Click 이벤트 핸들러를 구현합시다.

tbox_msg의 Text 속성 값으로 lb_msg의 Text속성 값을 설정합니다.

그리고 tbox_msg의 Text 속성 값은 빈 문자열로 설정하세요.

        private void btn_set_Click(object sender, EventArgs e)
        {
            lb_msg.Text = tbox_msg.Text;
            tbox_msg.Text = "";
        }

놀랍게도 구현이 끝났으니 실행해서 확인해 보세요.

전체 소스 코드는 다음과 같습니다.

using System;
using System.Windows.Forms;

namespace TextBox버튼Label
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_set_Click(object sender, EventArgs e)
        {
            lb_msg.Text = tbox_msg.Text;
            tbox_msg.Text = "";
        }
    }
}

컨트롤 배치나 이벤트 핸들러 설정 등의 내용은 마법사에 의해 Form1.Designer.cs에 코드를 작성되죠.

이 소스 파일은 등록한 이벤트 핸들러를 삭제할 때 외에는 만질 일이 거의 없어요.

마법사가 어떤 코드를 작성해 주었는지 간략하게 보시는 것은 나쁘지 않겠죠.

namespace TextBox버튼Label
{
    partial class Form1
    {
        ///
        /// 필수 디자이너 변수입니다.
        /// 
        private System.ComponentModel.IContainer components = null;

        ///
        /// 사용 중인 모든 리소스를 정리합니다.
        /// 
        ///관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form 디자이너에서 생성한 코드

        ///
        /// 디자이너 지원에 필요한 메서드입니다. 
        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
        /// 
        private void InitializeComponent()
        {
            this.tbox_msg = new System.Windows.Forms.TextBox();
            this.btn_set = new System.Windows.Forms.Button();
            this.lb_msg = new System.Windows.Forms.Label();
            this.checkedListBox1 = new System.Windows.Forms.CheckedListBox();
            this.SuspendLayout();
            // 
            // tbox_msg
            // 
            this.tbox_msg.Location = new System.Drawing.Point(27, 22);
            this.tbox_msg.Name = "tbox_msg";
            this.tbox_msg.Size = new System.Drawing.Size(303, 21);
            this.tbox_msg.TabIndex = 0;
            // 
            // btn_set
            // 
            this.btn_set.Location = new System.Drawing.Point(356, 22);
            this.btn_set.Name = "btn_set";
            this.btn_set.Size = new System.Drawing.Size(75, 23);
            this.btn_set.TabIndex = 1;
            this.btn_set.Text = "설정";
            this.btn_set.UseVisualStyleBackColor = true;
            this.btn_set.Click += new System.EventHandler(this.btn_set_Click);
            // 
            // lb_msg
            // 
            this.lb_msg.AutoSize = true;
            this.lb_msg.Location = new System.Drawing.Point(25, 73);
            this.lb_msg.Name = "lb_msg";
            this.lb_msg.Size = new System.Drawing.Size(53, 12);
            this.lb_msg.TabIndex = 2;
            this.lb_msg.Text = "[메시지]";
            // 
            // checkedListBox1
            // 
            this.checkedListBox1.FormattingEnabled = true;
            this.checkedListBox1.Location = new System.Drawing.Point(282, 28);
            this.checkedListBox1.Name = "checkedListBox1";
            this.checkedListBox1.Size = new System.Drawing.Size(120, 84);
            this.checkedListBox1.TabIndex = 3;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(482, 116);
            this.Controls.Add(this.checkedListBox1);
            this.Controls.Add(this.lb_msg);
            this.Controls.Add(this.btn_set);
            this.Controls.Add(this.tbox_msg);
            this.Name = "Form1";
            this.Text = "Button 클릭 시 TextBox 내용으로 Label 속성 설정하기";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TextBox tbox_msg;
        private System.Windows.Forms.Button btn_set;
        private System.Windows.Forms.Label lb_msg;
        private System.Windows.Forms.CheckedListBox checkedListBox1;
    }
}