(C#) listView 컨트롤

C# listView 컨트롤은 Windows 탐색기의 표시 모드와 마찬가지로 여러 가지 다른 표시 모드를 지원합니다.

여기서는 상세 보기 모드에서 간단한 예제를 만듭니다.

1. 프로젝트를 생성합니다.

  • Windows Forms 앱(.NET 프레임워크)

2. 목록 보기 컨트롤을 폼에 배치하고 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);
        }


C#, 리스트뷰 컨트롤

3. 다음과 같이 화면을 디자인합니다.


C#, 리스트뷰 컨트롤

속성을 다음으로 변경합니다.

버튼 이름: 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("삭제할 항목을 선택해주세요.");
        }

(새로 고침) 버튼에 대한 코드를 작성합니다.

        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;
            }
        }

실행 결과


목록 보기 추가

목록 보기: 새로 고침

추가, 삭제, 업데이트 모든 것이 잘 작동합니다.