C# 강좌 : 제 4강 - ComboBox & ListBox
프로젝트 구성
도구상자에서 ComboBox
, ListBox
, Label
을 Form1
에 생성합니다.
위 이미지와 같이 배치합니다.
도구 상자 속성
속성을 다음과 같이 설정합니다.
- ComboBox
- (name) : cmbx
- Text : 선택하세요.
- Items : 1번 목록, 2번 목록, 3번 목록, 4번 목록
- ListBox
- (name) : ltbx
- Label (1번)
- (name) : lbl_select
- Text : 선택 :
- Label (2번)
- (name) : lbl_info
- Text : -
- Tip : ListBox의 Items는 한 줄에 하나씩 입력해야 목록으로 저장됩니다.
ComboBox 이벤트 적용
ComboBox
를 더블 클릭하여 이벤트를 생성합니다.
private void cmbx_SelectedIndexChanged(object sender, EventArgs e)
{
ltbx.Items.Clear();
string[] lst1 = { "1-1번", "1-2번", "1-3번" };
string[] lst2 = { "2-1번", "2-2번", "2-3번" };
string[] lst3 = { "3-1번", "3-2번", "3-3번" };
string[] lst4 = { "4-1번", "4-2번", "4-3번" };
if(cmbx.SelectedIndex == 0) ltbx.Items.AddRange(lst1);
if(cmbx.SelectedIndex == 1) ltbx.Items.AddRange(lst2);
if(cmbx.SelectedItem == "3번 목록") ltbx.Items.AddRange(lst3);
if(cmbx.SelectedIndex == 3) ltbx.Items.AddRange(lst4);
}
세부 코드
ltbx.Items.Clear();
ListBox
의 목록을 초기화 시키는 코드입니다.
string[] lst1 = { "1-1번", "1-2번", "1-3번" };
string[] lst2 = { "2-1번", "2-2번", "2-3번" };
string[] lst3 = { "3-1번", "3-2번", "3-3번" };
string[] lst4 = { "4-1번", "4-2번", "4-3번" };
lst 배열을 생성하여 ListBox
에 들어갈 목록을 만듭니다.
if(cmbx.SelectedIndex == 0) ltbx.Items.AddRange(lst1);
선택된 Index를 비교하여 ListBox
의 목록에 한 번에 저장합니다.
여기서 Index의 번호는 1 번이 아니라 0 번부터 시작합니다. 즉, 가장 상단의 목록이 0 번 입니다.
if(cmbx.SelectedItem == "3번 목록") ltbx.Items.AddRange(lst3);
Index의 값으로 비교가 아닌 선택된 Item의 이름으로 비교하는 방법입니다.
목록이 너무 많은 경우 직관적으로 코딩할 수 있습니다.
- Tip : 목록의 이름이 일치하지 않으면 생성되지 않습니다.
ListBox 이벤트 적용
ListBox
에서 선택된 Item을 Label
에 띄우는 작업입니다.
ListBox
를 더블클릭하여 이벤트를 생성합니다.
세부 코드
private void ltbx_SelectedIndexChanged(object sender, EventArgs e)
{
lbl_info.Text = Convert.ToString(ltbx.SelectedItem);
}
ListBox에서 선택된 Item의 Index가 바뀔 때 마다 실행되는 이벤트입니다.
이벤트가 실행할 때마다 lbl_info
의 Text를 ListBox
에서 선택된 Item의 이름으로 변경합니다.
Convert.ToString(ltbx.SelectedItem);
Convert.ToString()은 해당 변수의 형식을 문자열(string)
으로 변환합니다.
변환하지 않는다면 프로그램이 실행되지 않습니다.
공유하기


댓글 남기기