首页 > 代码库 > C#ListView控件的属性和实际操作

C#ListView控件的属性和实际操作

常用属性:

View设置或返回控件的视图类型

值 说明

1-LvwIcon 图标类型

2-LvwSmallIcon 小图标类型

3-LvwList 列表类型

4-LvwReport 报表类型

Arrange 设置后返回控件的图标排列方式(在图标视图下有效)

值 说明

1-LvwNone 不排列

2-LvwAutoLeft 自动靠右排列

3-LvwAutoTop 自动靠左排列

Icons、 SmallIcons、 ColumnHeaderIcons属性

Icons指定图标视图时的图标与ImageList的绑定

SmallIcons、 ColumnHeaderIcons指定列表视图时的图标与ImageList的绑定

PICTURE、PictureAlignment属性

分别指定ListView控件的背景图片和布局方式 ListItems(Index) 属性

ListItems 属性是ListView控件中列表项的集合。

Index用于指定列表项集合中的一个对象, 我们可以把这个对象看作对一行的引用 ListItems集合的属性

1. Text 设置或返回显示文本

2. key 关键字

3. index 索引编号

4. icon , smallicon 不同视图时显示单元格的图标

5. checked 给checkboxes 打√

6. selected 使处于选定状态

7. ListSubitems(index) 集合 我们可以把这个集合看作对这行中单元格的引用 Text 设置或返回单元格显示的内容 Reporticon 设置单元格的图标

8. Subitems(index) 设置或返回单元格文本 == ListSubitems(index).text ColumnHeaders(index) 属性

ColumnHeaders 属性是ListView控件中列标头的集合

1. text 显示标题文本

2. key

3. index

4. icon 指定标题图标

5. alignment 指定index列的对齐方式 (注意:第一列也就是列表项不能指定)

6. position 返回当前列的索引

7. subitemindex 返回指定列的listsubitem索引 TextBackgroud 属性

决定text的背景是透明还是ListView的背景色 值 0 lvwTransparent 透明 1 lvw 不透明(用listview的背景色)

Ghosted 属性 logic 决定是否虚状 HideColumnHeaders 属性

隐藏表头 LabelWrap 属性 标签转行 View.LargeIcon 或 View.SmallIcon 时才使用该属性 FullRowSelect 整行显示

HotTracking 热点追踪 鼠标指针自动调整为手型 HoverSelection 属性 自动聚焦 鼠标指针自动调整为手型 AllowColumnReorder属性

值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列 Sorted属性 当值为.t.时,

列表按字母排序 常用方法:

ListItems.add(index,key,text,icon,smallicon) 向listitems添加一列表项。

Index 插入列表项的编号 Key 插入列表项的关键字

Text 插入列表项的文本 Icon 当为图标视图时要求显示的图标

Smallicon 当为小图标视图时要求显示的图标 Clear

清除listitems集合中所有的列表项 Remove清除选定行 L1=thisform.view1 L1.listitems.remove(L1.selectedItem.index) AllowColumnReorder属性

值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列 常用事件:

AfterLabelEdit 编辑当前选择的列表对象之后发生 BeforeLabelEdit 编辑当前选择的列表对象之前发生

ItemClick 单击某一列表对象时发生 参数 item 对当前列表项的引用 事件 AfterLabelEdit:编辑ListItem对象的标签时被触发。

BeforeLabelEdit:编辑ListItem对象的标签后出发。 ColumnClick:单击列标题时触发。参数中可以获得被单击的列对象。通常用于排序。

ItemClick:单击某行或某ListItem时触发。参数中可以获得被单击的ListItem对象。 方法 FindItem:搜索ListItem对象。

参数: string:搜索字符串。 value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置。

match:匹配方式。 HitTest:检索位于特定坐标处的ListItem对象。 vb 中的实例 Private Sub Form_load() ‘确保ListView控件的view属性为报表视图。

ListView1.View=lvwReport ‘添加三列。 ListView1.ColumnHeaders.Add,"Name","姓名" ListView1.ColumnHeaders.Add,"Sex","性别"

ListView1.ColumnHeaders.Add,"Age","年龄" ‘向控件添加ListItem对象。 Dim itmX As ListItem ‘添加column1的名称。

Set itmX=ListView1.ListItems.Add(1,"ZL","张力") ‘使用SubItemIndex将SubItem与正确的ColumnHeader关联。

使用关键字("Sex")指定正确的ColumnHeader。

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男" ‘使用ColumnHeader关键字将SubItems字符串与 ‘正确的ColumnHeader关联。

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19" Set itmX=ListView1.ListItems.Add(1,"LF","李芳")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男" itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22" Set

itmX=ListView1.ListItems.Add(1,"WW","王伟") itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24" End Sub Private Sub ListView1_ColumnClick(ByVal ColumnHeader As

ComctlLib.ColumnHeader) Select Case ColumnHeader.Key Case "Sex":

ListView1.SortKey=1 ListView1.SortOrder=lvwAscending ListView1.Sorted=True Case "Age":

ListView1.SortKey=2 ListView1.SortOrder=lvwAscending ListView1.Sorted=True End Select End Sub

例二 Private Sub UserForm_Initialize() ListView1.ColumnHeaders.Add , ,

"QQ号" ‘添加QQ号列 ListView1.ColumnHeaders.Add , ,

"呢称" ‘添加呢称列 ListView1.ColumnHeaders.Add , ,

"来自何处" ‘添加来自何处列 ListView1.View = lvwReport ‘‘设置显示方式为报表格式 End Sub 代码说明:

1、在工作表中用Column表示列。而在Listview控件中,用ColumnHeaders对象来操作列,而添加新的列可以用ColumnHeaders对象的ADD方法。

具体如下:

ListView1.ColumnHeaders.Add 序号,唯一的字符串标识,列标显示文字,列宽,列的内容对齐方式,所使用的图标序号。

如本例中:

ListView1.ColumnHeaders.Add , ,"QQ号"

2、Listview控件的View 属性决定着它的显示的方式,

具体如下:

ListView1.View = lvwIcon ‘图标显示

ListView1.View = lvwSmallIcon ‘小图标显示

ListView1.View = lvwList ‘列表显示

ListView1.View = lvwReport ‘报表显示

添加效果: 示例文件:

代码: Private Sub UserForm_Initialize() ‘声明变量类型 Dim ITM As ListItem ‘添加QQ号列,

列宽占总宽度的三分之一,左对齐 ListView1.ColumnHeaders.Add ,

, "QQ号", ListView1.Width / 3, lvwColumnLeft ‘添加呢称列,

列宽占总宽度的三分之一,居中对齐 ListView1.ColumnHeaders.Add ,

, "呢称", ListView1.Width / 3, lvwColumnCenter ‘添加来自何处列,

列宽占总宽度的三分之一,右对齐 ListView1.ColumnHeaders.Add ,

, "来自何处", ListView1.Width / 3, lvwColumnRight ‘设置显示方式为报表格式 ListView1.View = lvwReport ‘显示表格线

ListView1.Gridlines = True ‘设置循环,填充记录 For i = 1 To [A65536].End(xlUp).Row ‘添加记录 Set ITM = ListView1.ListItems.Add() ‘

添加记录的行标题 定义产生一个新记录,新行 ITM.Text = Cells(i, 1) ‘添加记录的记录文本说明 ITM.SubItems(1) = Cells(i, 2) ‘

添加记录的第一个字段的内容,在第二列上显示 ITM.SubItems(2) = Cells(i, 3) Next i End Sub

代码说明:

1、ListView1的Gridlines属性为True时显示表格线,为False不显示表格线。

2、在ListView控件中,添加记录要通过ListItems集合对象来实现,如本例中Set ITM = ListView1.ListItems.Add()

3、设置第一列的内容是通过text属性来添加,而以后各列的添加则通过SubItems对象来实现。

第2列为SubItems(1)

第3列为SubItems(2)..........

4、在Listview控件第1列只能左对齐,而不能采取其他对齐方式

5、单元格引用:CELLS(行,列) 增加列 listView1.ColumnHeaders.Add 增加行 listView1.ListItems.Ad

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListView
{
public partial class Form1 : Form
  {
public Form1()
  {
InitializeComponent();
  }

private void butzengjia_Click(object sender, EventArgs e)
  {
       listView1.Items.Add(txbxingming.Text);
       listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbxingbie.Text);
       listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbnianling.Text);
       listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbminzu.Text);
       txbxingming.Text = "";
       txbxingbie.Text = "";
       txbnianling.Text = "";
       txbminzu.Text = "";
  }

private void butshanchu_Click(object sender, EventArgs e)
  {
for (int i = 0; i < listView1.Items.Count; i++)
  {
       if (listView1.Items[i].SubItems[0].Text == txbxingming.Text)
            listView1.Items.RemoveAt(i);
  }
         txbxingming.Text = "";
         txbxingbie.Text = "";
         txbnianling.Text = "";
         txbminzu.Text = "";
  }
 }
}

 

 

技术分享

C#ListView控件的属性和实际操作