안녕하세요. 언제나 휴일에 언휴예요.
이번 강의는 RadioButton 사용하는 실습입니다.
RadioButton은 CheckBox와 대부분 비슷합니다.
차이가 있는 부분은 같은 부모에 있는 RadioButton 중에 하나만 체크할 수 있다는 것이죠.
1. 컨트롤 배치 2. 이벤트 핸들러 등록 및 소스 코드 작성 3. Form1.cs 소스 코드
1. 컨트롤 배치
성별, 혈액형, 내/외국인을 체크할 수 있는 RadioButton을 배치하고 Name 속성을 지정하세요.
제출 Button과 상태 정보를 보여줄 Label도 지정하세요.
주의할 점은 같은 부모에 있는 RadioButton 중에 하나만 체크할 수 있다는 거예요.
성별과 내/외국인을 체크할 수 있는 RadioButton의 부모가 다를 수 있게 배치 컨트롤을 이용합니다.
여기에서는 Panel이 적합하네요.
그리고 초기에 체크 상태로 설정할 RadioButton의 Checked 속성은 True로 지정하세요.
2. 이벤트 핸들러 등록 및 소스 코드 구현
버튼 클릭 이벤트 핸들러를 등록하세요.
버튼 클릭 이벤트 핸들러에서는 성별, 혈액형, 내/외국인 정보를 얻어와서 lb_state의 Text 속성을 설정합니다.
각 정보를 얻어오는 부분은 별도의 메서드로 작성합시다.
private void btn_submit_Click(object sender, EventArgs e) { string ginfo = GetGenderInfo(); string binfo = GetBloodInfo(); string linfo = GetLocalInfo(); lb_state.Text = string.Format("성별:{0} 혈액형:{1}, {2}",ginfo, binfo,linfo); }
성별 정보를 얻어오는 메서드를 구현합시다.
두 개의 버튼 중에 하나의 Checked 상태 값을 확인하여 정보를 반환하면 되겠죠.
private string GetGenderInfo() { if(rbtn_male.Checked) { return rbtn_male.Text; } return rbtn_female.Text; }
나머지 두 개의 메서드도 같은 방법으로 구현합니다.
private string GetLocalInfo() { if(rbtn_local.Checked) { return rbtn_local.Text; } return rbtn_foreign.Text; } private string GetBloodInfo() { if(rbtn_a.Checked) { return rbtn_a.Text; } if(rbtn_b.Checked) { return rbtn_b.Text; } if(rbtn_ab.Checked) { return rbtn_ab.Text; } return rbtn_o.Text; }
3. Form1.cs 소스 코드
다음은 Form1.cs 소스 파일의 코드입니다.
using System; using System.Windows.Forms; namespace RadioButton_사용하기 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn_submit_Click(object sender, EventArgs e) { string ginfo = GetGenderInfo(); string binfo = GetBloodInfo(); string linfo = GetLocalInfo(); lb_state.Text = string.Format("성별:{0} 혈액형:{1}, {2}",ginfo, binfo,linfo); } private string GetLocalInfo() { if(rbtn_local.Checked) { return rbtn_local.Text; } return rbtn_foreign.Text; } private string GetBloodInfo() { if(rbtn_a.Checked) { return rbtn_a.Text; } if(rbtn_b.Checked) { return rbtn_b.Text; } if(rbtn_ab.Checked) { return rbtn_ab.Text; } return rbtn_o.Text; } private string GetGenderInfo() { if(rbtn_male.Checked) { return rbtn_male.Text; } return rbtn_female.Text; } } }