Tag: <span>CheckedChanged 이벤트 핸들러</span>

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

이번 강의는 CheckBox 실습이예요.

1. 컨트롤 배치
2. 이벤트 핸들러 등록하기
3. 소스 코드 구현하기
4. 전체 소스 코드

1. 컨트롤 배치

그림1. 컨트롤 배치

위 그림 처럼 4 개의 CheckBox와 1개의 Label, 1개의 Button, 1개의 GroupBox를 배치하고 속성 창에서 Name을 설정하세요.

2. 이벤트 핸들러 등록하기

폼의 Load 이벤트 핸들러를 등록하세요.

위 쪽 두 개의 CheckBox의 CheckedChanged 이벤트 핸들러를 등록하세요.

버튼의 Click 이벤트 핸들러를 등록하세요.

3. 소스 코드 구현하기

폼의 Load 이벤트 핸들러에서는 CheckBox 상태를 표시할 lb_mag의 Text를 초기화할 거예요.

CheckBox 상태가 바뀔 때도 lb_msg의 Text를 변경해야 하므로 별도의 메서드(SettingStates)를 만들어서 호출하게 구현합시다.

        private void Form1_Load(object sender, EventArgs e)
        {
            SettingStates();
        }

SettingStates 메서드에서는 위 쪽 두 개의 체크 박스(cbox_hascar, cbox_haseh)의 체크 상태를 확인합니다. 이 때 사용하는 속성이 Checked입니다.

그리고 이 값으로 lb_msg의 Text 속성을 설정합니다.

        private void SettingStates()
        {
            bool hcar = cbox_hascar.Checked;
            bool heh = cbox_haseh.Checked;
            lb_msg.Text = string.Format("자동차 소유:{0} 행복 소유:{1}", hcar, heh);
        }

두 개의 체크 박스(cbox_hascar, cbox_haseh)의 CheckedChanged 이벤트 핸들러에서도 SettingStates를 호출합니다.

        private void cbox_hascar_CheckedChanged(object sender, EventArgs e)
        {
            SettingStates();
        }

        private void cbox_haseh_CheckedChanged(object sender, EventArgs e)
        {
            SettingStates();
        }

마지막으로 btn_set의 Click 이벤트 핸들러를 구현합시다.

아래 두 개의 체크 박스의 Checked 속성으로 위 두 개의 체크 박스 Checked 속성을 설정합니다.

        private void btn_set_Click(object sender, EventArgs e)
        {
            cbox_hascar.Checked = cbox_hascar2.Checked;
            cbox_haseh.Checked = cbox_haseh2.Checked;
        }

이처럼 CheckBox 컨트롤에서 제일 중요한 속성은 Checked라고 할 수 있어요.

4. 전체 소스 코드

using System;
using System.Windows.Forms;

namespace CheckBox_상태_확인_및_설정하기
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            SettingStates();
        }

        private void SettingStates()
        {
            bool hcar = cbox_hascar.Checked;
            bool heh = cbox_haseh.Checked;
            lb_msg.Text = string.Format("자동차 소유:{0} 행복 소유:{1}", hcar, heh);
        }

        private void cbox_hascar_CheckedChanged(object sender, EventArgs e)
        {
            SettingStates();
        }

        private void cbox_haseh_CheckedChanged(object sender, EventArgs e)
        {
            SettingStates();
        }

        private void btn_set_Click(object sender, EventArgs e)
        {
            cbox_hascar.Checked = cbox_hascar2.Checked;
            cbox_haseh.Checked = cbox_haseh2.Checked;
        }
    }
}