상위 목록: 하위 목록: 작성 날짜: 읽는 데 9 분 소요

프로젝트 구성

도구상자에서 ComboBox, ListBox, LabelForm1에 생성합니다.

위 이미지와 같이 배치합니다.


도구 상자 속성

속성을 다음과 같이 설정합니다.

  1. ComboBox
    • (name) : cmbx
    • Text : 선택하세요.
    • Items : 1번 목록, 2번 목록, 3번 목록, 4번 목록
  2. ListBox
    • (name) : ltbx
  3. Label (1번)
    • (name) : lbl_select
    • Text : 선택 :
  4. 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에서 선택된 ItemLabel에 띄우는 작업입니다.

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)으로 변환합니다.

변환하지 않는다면 프로그램이 실행되지 않습니다.

댓글 남기기