ListBox 컨트롤
ListBox 컨트롤은 박스안에 선택가능한 옵션 리스트를 표시하는 컨트롤으로서 옵션이 많은 경우 스크롤을 사용할 수 있다. Items 프로퍼티안에 옵션 리스트를 넣게 되며, SelectedIndex를 지정하여 초기 선택값을 셋팅할 수 있다.
ListBox 이벤트 핸들링
ListBox의 한 아이템이 선택되어졌을 때 SelectedIndexChanged 이벤트가 발생한다. 아래 예제는 멤버쉽 선택 메뉴에서 아이템이 선택 되었을 때 해당 아이템의 enum값을 필드에 저장하는 예이다.
예제
namespace MyWinForm
{
public partial class Form1 : Form
{
// 멤버쉽 Enum 타입
public enum MemberType
{
VIP = 0,
Regular,
Associate,
DayPass
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Add("VIP 회원");
listBox1.Items.Add("정회원");
listBox1.Items.Add("준회원");
listBox1.Items.Add("일일 회원");
// 정회원이 기본 선택
listBox1.SelectedIndex = 1;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
memberType = (MemberType)listBox1.SelectedIndex;
}
private MemberType memberType;
}
}
{
public partial class Form1 : Form
{
// 멤버쉽 Enum 타입
public enum MemberType
{
VIP = 0,
Regular,
Associate,
DayPass
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Add("VIP 회원");
listBox1.Items.Add("정회원");
listBox1.Items.Add("준회원");
listBox1.Items.Add("일일 회원");
// 정회원이 기본 선택
listBox1.SelectedIndex = 1;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
memberType = (MemberType)listBox1.SelectedIndex;
}
private MemberType memberType;
}
}
- listBox1.SelectedIndex은 정수를 리턴하므로 이를 상응하는 enum값을 변경하기 위해 앞에 (MemberType)을 붙여 캐스팅을 하게 한다.
- 캐스팅시 Zero-based SelectedIndex값과 enum값을 서로 맞도록 지정 해야 한다