>백엔드 개발 >C#.Net 튜토리얼 >C# ListView 사용법에 대한 자세한 설명

C# ListView 사용법에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-12-13 16:09:092554검색

1. ListView 클래스

1. 일반적으로 사용되는 기본 속성:

(1) FullRowSelect: 행 선택 모드 여부를 설정합니다. (기본값은 false입니다.) 팁: 이 속성은 세부정보 보기에서만 의미가 있습니다.

(2) GridLines: 행과 열 사이에 그리드선 표시 여부를 설정합니다. (기본값은 false입니다.) 팁: 이 속성은 세부정보 보기에서만 의미가 있습니다.

(3) AllowColumnReorder: 열 헤더를 드래그하여 열 순서를 변경할 수 있는지 여부를 설정합니다. (기본값은 false입니다.) 팁: 이 속성은 세부정보 보기에서만 의미가 있습니다.

(4) 보기: Details, LargeIcon, List, SmallIcon, Tile을 포함하여 컨트롤에 있는 항목의 표시 모드를 가져오거나 설정합니다(기본값은 LargeIcon)

( 5) MultiSelect: 여러 항목을 선택할 수 있는지 여부를 설정합니다. (기본값은 false)

(6) HeaderStyle: 열 헤더 스타일을 가져오거나 설정합니다.

클릭 가능: 열 헤더는 클릭 시 작업(예: 정렬)을 수행하는 버튼처럼 작동합니다.

NonClickable: 열 헤더가 마우스 클릭에 응답하지 않습니다.

없음: 열 헤더를 표시하지 않습니다.

(7) LabelEdit: 컨트롤 항목의 라벨을 사용자가 편집할 수 있는지 여부를 설정합니다. Detail 뷰의 경우 행의 첫 번째 열 내용만 편집할 수 있습니다. (기본값은 false)

(8) CheckBoxes: 컨트롤의 각 항목 옆에 체크박스를 표시할지 여부를 설정합니다. (기본값은 false)

(9) LargeImageList: 큰 아이콘 세트입니다. 팁: LargeIcon 보기에서만 사용됩니다.

(10) SmallImageList: 작은 아이콘 세트. 팁: SmallIcon 보기에서만 사용됩니다.

(11) StateImageList: 이미지 마스크. 이러한 이미지 마스크는 항목의 애플리케이션 정의 상태를 나타내는 데 사용할 수 있는 LargeImageList 및 SmallImageList 이미지에 대한 오버레이로 사용할 수 있습니다. (아직 이해가 안됨)

(12) SelectedItems : 컨트롤에서 선택된 항목을 가져옵니다.

(13) CheckedItems: 컨트롤의 현재 확인란에 의해 선택된 항목을 가져옵니다.

(14)정렬: 목록 보기의 항목을 정렬합니다. (기본값은 없음)

오름차순: 항목이 오름차순으로 정렬됩니다.

내림차순: 항목이 내림차순으로 정렬됩니다.

없음: 항목이 정렬되지 않습니다.

(15) 스크롤 가능: 모든 항목을 표시할 공간이 부족할 때 스크롤 막대 표시 여부를 설정합니다. (기본값은 true)

(16) HoverSelection: 항목 위에 마우스 포인터를 올렸을 때 자동으로 항목을 선택할지 여부를 설정합니다. (기본값은 false)

(17) HotTracking: 마우스 포인터가 항목 텍스트를 통과할 때 하이퍼링크 형태로 변경되는지 여부를 설정합니다. (기본값은 false)

(18) HideSelection: 컨트롤에 포커스가 없을 때 선택한 항목을 계속 강조 표시할지 여부를 설정합니다. (기본값은 false)

(19) ShowGroups : 항목을 그룹으로 표시할지 여부를 설정합니다. (기본값은 false);

(20) 그룹: 그룹화된 개체 컬렉션을 설정합니다.

(21) TopItem: 위치 지정에 사용할 수 있는 컨트롤에서 첫 번째로 표시되는 항목을 가져오거나 설정합니다. (EnacheVisible 메소드와 효과는 유사)

2. 자주 사용하는 메소드 :

(1) BeginUpdate : EndUpdate 메소드를 호출하기 전에 컨트롤에 대한 설명을 피합니다. 많은 양의 데이터를 삽입할 때 제어 깜박임을 효과적으로 방지하고 속도를 크게 높일 수 있습니다.

(2) EndUpdate: BeginUpdate 메서드가 설명을 일시 중지한 후 목록 보기 컨트롤을 계속 설명합니다. (업데이트 종료)

(3) EnacheVisible: 목록 보기는 지정된 인덱스 항목의 항목 행으로 스크롤합니다. (TopItem 속성과 비슷한 효과)

(4) FindItemWithText: 주어진 텍스트 값으로 시작하는 첫 번째 ListViewItem을 찾습니다.

(5) FindNearestItem: 지정된 검색 방향에 따라 주어진 지점에서 시작하여 다음 항목을 찾습니다. 팁: 이 방법은 LargeIcon 또는 SmallIcon 보기에서만 사용할 수 있습니다.

3. 일반 이벤트:

(1) AfterLabelEdit: 사용자가 항목 라벨 편집을 완료할 때 발생하며 LabelEdit 속성이 true여야 합니다.

(2) BeforeLabelEdit: 사용자가 항목의 라벨 편집을 시작할 때 발생합니다.

(3) ColumnClick: 사용자가 목록 보기 컨트롤에서 열 헤더를 클릭할 때 발생합니다.

2. ListView의 5가지 보기:

1. LargeIcon: 각 항목은 아래에 레이블이 있는 최대화된 아이콘으로 표시됩니다. (효과는 아래 그림 참조)

2. SmallIcon: 각 항목은 오른쪽에 라벨이 붙은 작은 아이콘으로 표시됩니다. (효과는 아래 그림 참조)

3. 목록: 각 항목은 오른쪽에 라벨과 함께 작은 아이콘으로 표시됩니다. 항목은 열 머리글 없이 열로 정렬됩니다. (효과는 아래 그림 참조)

4. 세부사항: 모든 열을 표시할 수 있지만 첫 번째 열에만 작은 아이콘과 레이블을 포함할 수 있으며 다른 열 항목은 텍스트 정보만 표시하고 열을 가질 수 있습니다. 헤더. (효과는 아래 그림 참조)

5. 타일: 각 항목은 전체 크기 아이콘으로 표시되며, 오른쪽에는 항목 라벨과 하위 항목 정보가 표시됩니다. (Windows XP 및 Windows Server 2003 시리즈에서만 지원)

①상세 보기:

this.listView1.SmallImageList = this.imageList1; //listView의 아이콘 세트를 imageList1에 바인딩

                                                                                                          >

ColumnHeader  ch= new ColumnHeader(); 
 
nbsp;ch.Text = "列标题1";   //设置列标题 
 
ch.Width = 120;    //设置列宽度 
 
ch.TextAlign = HorizontalAlignment.Left;   //设置列的对齐方式 
 
this.listView1.Columns.Add(ch);    //将列头添加到ListView控件。
( 5) 행 높이 설정(imageList를 사용하여 구현)
ColumnHeader  ch= new ColumnHeader();  
  
ch.Text = "列标题1";   //设置列标题  
  
ch.Width = 120;    //设置列宽度  
  
ch.TextAlign = HorizontalAlignment.Left;   //设置列的对齐方式  
  
this.listView1.Columns.Add(ch);    //将列头添加到ListView控件。

this.listView1.Columns.Add("列标题1", 120,  HorizontalAlignment.Left); //一步添加
(6) 지우기
this.listView1.Columns.Add("列标题1", 120,  HorizontalAlignment.Left); //一步添加

this.listView1.BeginUpdate();   //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度 
 
for (int i = 0; i < 10; i++)   //添加10行数据 
{ 
     ListViewItem lvi = new ListViewItem(); 
 
     lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标 
 
     lvi.Text = "subitem" + i; 
 
     lvi.SubItems.Add("第2列,第"+i+"行"); 
 
     lvi.SubItems.Add("第3列,第"+i+"行"); 
 
     this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。
실행 효과:
this.listView1.BeginUpdate();   //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度  
  
for (int i = 0; i < 10; i++)   //添加10行数据  
{  
    ListViewItem lvi = new ListViewItem();  
  
    lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标  
  
    lvi.Text = "subitem" + i;  
  
    lvi.SubItems.Add("第2列,第"+i+"行");  
  
    lvi.SubItems.Add("第3列,第"+i+"行");  
  
    this.listView1.Items.Add(lvi);  
}  
  
this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。

foreach (ListViewItem item in this.listView1.Items) 
{ 
      for (int i = 0; i < item.SubItems.Count; i++) 
      { 
          MessageBox.Show(item.SubItems[i].Text); 
      } 
}
foreach (ListViewItem item in this.listView1.Items)  
{  
      for (int i = 0; i < item.SubItems.Count; i++)  
      {  
          MessageBox.Show(item.SubItems[i].Text);  
      }  
}
②largeIcon 보기:

foreach (ListViewItem lvi in listView1.SelectedItems)  //选中项遍历 
{ 
      listView1.Items.RemoveAt(lvi.Index); // 按索引移除 
      //listView1.Items.Remove(lvi);   //按项移除 
}
foreach (ListViewItem lvi in listView1.SelectedItems)  //选中项遍历  
{  
      listView1.Items.RemoveAt(lvi.Index); // 按索引移除  
      //listView1.Items.Remove(lvi);   //按项移除  
}
실행 효과:

ImageList imgList = new ImageList(); 
 
imgList.ImageSize = new Size(1, 20);// 设置行高 20 //分别是宽和高 
 
listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大
ImageList imgList = new ImageList();  
  
imgList.ImageSize = new Size(1, 20);// 设置行高 20 //分别是宽和高  
  
listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大

③SmallIcon 보기:

this.listView1.Clear();  //从控件中移除所有项和列(包括列表头)。 
 
this.listView1.Items.Clear();  //只移除所有的项。
this.listView1.Clear();  //从控件中移除所有项和列(包括列表头)。  
  
this.listView1.Items.Clear();  //只移除所有的项。

런닝 효과 :

C# ListView用法详解

④목록보기 :

this.listView1.View = View.LargeIcon; 
 
this.listView1.LargeImageList = this.imageList2; 
 
this.listView1.BeginUpdate(); 
 
for (int i = 0; i < 10; i++) 
{ 
      ListViewItem lvi = new ListViewItem(); 
 
      lvi.ImageIndex = i; 
 
      lvi.Text = "item" + i; 
 
      this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();
this.listView1.View = View.LargeIcon;  
  
this.listView1.LargeImageList = this.imageList2;  
  
this.listView1.BeginUpdate();  
  
 for (int i = 0; i < 10; i++)  
 {  
      ListViewItem lvi = new ListViewItem();  
  
      lvi.ImageIndex = i;  
  
      lvi.Text = "item" + i;  
  
      this.listView1.Items.Add(lvi);  
 }  
  
 this.listView1.EndUpdate();

런닝 효과 :

C# ListView用法详解

3. 기타 애플리케이션

this.listView1.View = View.SmallIcon; 
 
this.listView1.SmallImageList= this.imageList1; 
 
this.listView1.BeginUpdate(); 
 
for (int i = 0; i < 10; i++) 
{ 
     ListViewItem lvi = new ListViewItem(); 
 
      lvi.ImageIndex = i; 
 
      lvi.Text = "item" + i; 
 
      this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();
this.listView1.View = View.SmallIcon;  
  
this.listView1.SmallImageList= this.imageList1;  
  
this.listView1.BeginUpdate();  
  
for (int i = 0; i < 10; i++)  
{  
     ListViewItem lvi = new ListViewItem();  
  
      lvi.ImageIndex = i;  
  
      lvi.Text = "item" + i;  
  
      this.listView1.Items.Add(lvi);  
}  
  
this.listView1.EndUpdate();
1. 그룹화:

C# ListView用法详解 실행 효과:

this.listView1.View = View.List; 
 
this.listView1.SmallImageList= this.imageList1; 
 
this.listView1.BeginUpdate(); 
 
for (int i = 0; i < 10; i++) 
{ 
     ListViewItem lvi = new ListViewItem(); 
 
     lvi.ImageIndex = i; 
 
     lvi.Text = "item" + i; 
 
     this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();
this.listView1.View = View.List;  
  
this.listView1.SmallImageList= this.imageList1;  
  
this.listView1.BeginUpdate();  
  
for (int i = 0; i < 10; i++)  
{  
     ListViewItem lvi = new ListViewItem();  
  
     lvi.ImageIndex = i;  
  
     lvi.Text = "item" + i;  
  
     this.listView1.Items.Add(lvi);  
}  
  
this.listView1.EndUpdate();
2. 텍스트 검색(접두사와 일치하는 텍스트만 찾을 수 있으며 첫 번째로 일치하는 항목만 찾을 수 있음):

C# ListView用法详解

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C++ 예외 처리다음 기사:C++ 예외 처리