C#
(C#) listView 컨트롤 자세히 보기(View.Details) 모드
코딩ABC
2023. 4. 23. 07:01
반응형
C#의 listView(리스트뷰) 컨트롤은 윈도우 탐색기의 보기 모드처럼 여러 가지 모양의 보기 모드를 지원합니다.
여기에서는 자세히 보기 모드를 이용한 간단한 예제를 만들어 보겠습니다.
1. 프로젝트를 생성합니다.
- Windows Forms 앱(.NET Framework)
2. 리스트뷰 컨트롤을 1개 폼에 배치하고, Form_Load 이벤트에 다음과 같은 코드를 작성하고 실행합니다.
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = true;
listView1.Columns.Add("순서", 50, HorizontalAlignment.Center);
listView1.Columns.Add("학번", 70, HorizontalAlignment.Center);
listView1.Columns.Add("이름", 70, HorizontalAlignment.Center);
listView1.Columns.Add("전화", 150, HorizontalAlignment.Center);
}
3. 화면을 다음과 같이 디자인합니다.
속성을 다음과 같이 변경합니다.
버튼 이름: btnAdd, btnDelete
[저장] 버튼에 코드를 작성합니다.
int n=0; // 전역변수(필드) 위치에 선언합니다.
private void btnAdd_Click(object sender, EventArgs e)
{
n++;
ListViewItem item = new ListViewItem(n.ToString());
item.SubItems.Add(textBox1.Text);
item.SubItems.Add(textBox2.Text);
item.SubItems.Add(textBox3.Text);
listView1.Items.Add(item);
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox1.Focus();
}
리스트뷰의 "SelectedIndexChanged" 이벤트에 코드를 작성합니다.
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
textBox1.Text = listView1.FocusedItem.SubItems[1].Text;
textBox2.Text = listView1.FocusedItem.SubItems[2].Text;
textBox3.Text = listView1.FocusedItem.SubItems[3].Text;
}
catch { }
}
[삭제] 버튼에 코드를 작성합니다.
private void btnDelete_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0)
{
for(int i= listView1.SelectedIndices.Count-1; i>=0; i--)
listView1.Items.RemoveAt(listView1.SelectedIndices[i]);
}
else
MessageBox.Show("삭제할 항목을 선택해주세요.");
}
[Update] 버튼에 코드를 작성합니다.
private void button1_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
int n = listView1.SelectedItems[0].Index;
listView1.Items[n].SubItems[1].Text = textBox1.Text;
listView1.Items[n].SubItems[2].Text = textBox2.Text;
listView1.Items[n].SubItems[3].Text = textBox3.Text;
}
}
실행 결과
추가, 삭제, 변경(update) 모두 잘 실행됩니다.
반응형