반응형
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) 모두 잘 실행됩니다.
반응형
'C#' 카테고리의 다른 글
(C#) 웹 크롤링: 웹사이트 긁어오기 (0) | 2023.04.23 |
---|---|
(C#) 네트워크 프로그램, 1:1 채팅 프로그램 (0) | 2023.04.23 |
(C#) DBConn_OleDb.cs: 데이터베이스 다루는 클래스 (0) | 2023.04.21 |
(C#) 사진파일을 폴더에 복사하기 (0) | 2023.04.20 |
(C#) 파일명 확장자만 가져오기 (0) | 2023.04.20 |