CheckBox란?
From의 Control중 하나로, [선택함(Checked == true) / 선택하지 않음(Checked == false)] 두 가지의 결과가 나올 수 있는 컨트롤입니다.
해당 컨트롤을 통해 사용자에게 예/아니오 중 하나를 선택하게 하는 것이 가능합니다.
※ radioButton과 헷갈리실 수 있으나, radioButton은 checkBox에서 파생되어 나온것이며
radioButton은 그룹으로 묶여있는 것중 하나를 선택했을 경우, 같은 그룹의 다른 모든 라디오 버튼들이 선택해제되는 특징이 있습니다.
라디오버튼에 대한 포스팅은 추후 업로드 예정입니다.
위에서 언급한 것 처럼 체크박스는 딱 2가지의 상태를 갖고 있습니다.
1. Check 되어 있음
2. Check 되어 있지 않음
즉, 체크박스의 체크여부만 안다면 그에 맞는 동작을 수행하도록 하면됩니다.
체크박스의 체크여부를 알기위해서는 우선 해당 체크박스의 값이 바뀌었을 때
그 값을 확인해주는 방법이 있습니다.
바로 예제를 통해 확인해 보도록 하겠습니다.
예제. checkBox의 CheckedChanged 이벤트가 호출될 때 checkBox의 Checked 속성 확인하기
- 체크 박스가 체크되어 있을 때 텍스트 박스에 "체크 되어있음" 체크되어 있지 않을 때 "체크되어 있지 않음" 표출
- 체크 박스가 체크되어 있을 때 버튼 활성화, 체크되어 있지 않을 때 버튼 비활성화
폼디자인(Form Design)
1. 체크 여부에 따라서 수행될 동작을 정의하는 함수 isChecked를 만듭니다.
소스코드
public void isChecked(bool Checked)
{
if (Checked)
{
button1.Enabled = true;
textBox1.Text = "체크 되어있음";
}
else
{
button1.Enabled = false;
textBox1.Text = "체크되어 있지 않음";
}
}
Checked에 true가 들어왔을 때 Button을 활성화 시키고 텍스트 박스에 "체크되어 있음"이라는 문자열을 표출
Checked에 false가 들어왔을 때 Button을 비활성 시키고 텍스트 박스에 "체크되어 있지 않음"이라는 문자열을 표출
하는 코드 입니다.
2. checkBox1의 이벤트 탭에서 CheckedChanged 이벤트를 생성합니다.
위 이벤트는 해당 체크박스의 상태가 변할 때 마다 호출됩니다.
그안에 다음과 같은 코드를 적어줍니다.
소스 코드
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
isChecked(checkBox1.Checked);
}
이 코드에서 가장 핵심은 checkBox1.Checked입니다.
이 속성이 바로 체크박스 체크여부를 가져오는 값입니다.
check가 되어 있다면 true를 return해주고
check가 되어 있지 않다면 false를 return해줍니다.
즉 CheckBox의 체크여부가 변할 때 마다 isChecked(true) or isChecked(false)를 호출하여
Textbox와 button 컨트롤에 변화를 주는 것입니다.
3. Form1() 생성자에 isCheisChecked(checkBox1.Checked)을 추가합니다.
- 이 작업을 해주지 않으면 처음 Form이 Load된 후에 체크박스는 체크되어 있지 않은 상태임에도,
버튼은 활성화 되어 있고, 텍스트박스에는 아무런 문자열도 출력되지 않을 것입니다.
왜냐하면 우리는 체크박스가 눌렸을 경우에만 그 상태값에 따라 다른 컨트롤을 변화시키기 때문이죠.
하지만 저는 처음 상태(CheckBox의 Checked Defaul값은 false입니다)부터 타 컨트롤에 영향을 주고 싶습니다.
그렇기 때문에 InitializeComponent(); 밑에 해당 코드를 추가해줘서 폼이 로드된 후 체크박스의 상태를 체크하여 컨트롤을 변경시키는 작업을 진행하였습니다.
소스 코드
public Form1()
{
InitializeComponent();
isChecked(checkBox1.Checked);
}
실행 결과
체크박스의 체크여부에 따라 텍스트박스와 버튼의 활성화가 바뀌는 것을 확인 하실 수 있습니다.
전체 소스 코드 : 타 프로젝트위에 덮어 사용하여 프로젝트명이 일치하지 않는점 양해부탁드립니다 >_+
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Console_Example
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
isChecked(checkBox1.Checked);
}
public void isChecked(bool Checked)
{
if (Checked)
{
button1.Enabled = true;
textBox1.Text = "체크 되어있음";
}
else
{
button1.Enabled = false;
textBox1.Text = "체크되어 있지 않음";
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
isChecked(checkBox1.Checked);
}
}
}
이상입니다. 예제에 사용한 프로젝트 파일 통으로 압축하여 업로드 합니다.
질문은 댓글로 부탁드립니다.
'IT프로그래밍' 카테고리의 다른 글
[Python]파이썬 루트(제곱근) 구하기 소스 코드 - 설명 (sqrt, pow) (0) | 2020.04.20 |
---|---|
[엑셀 함수]엑셀 함수 정리 - 평균 함수 AVERAGE - 예제와 설명 (0) | 2020.04.20 |
[목록]엑셀 함수 정리, 엑셀 함수 모음, 자주쓰는 엑셀 함수 모음 (0) | 2020.04.19 |
[엑셀 함수]엑셀 함수 정리 - SUM 합계 함수 - 예제와 설명 (0) | 2020.04.19 |
[Python]파이썬 import 사용 방법과 예제(설명추가) (0) | 2020.04.19 |
C언어 루트(제곱근) 을 구하는 2가지 방법[sqrt, pow] 소스 코드 (0) | 2020.04.17 |
C# 윈폼 구구단 출력하기(소스코드, 프로젝트 첨부) (6) | 2020.04.15 |
C# 콤보 박스 초기값 설정하기(SelectedIndex 설정) (0) | 2020.04.15 |
댓글