相信大家都用过WIN系统的“我的电脑/此电脑”里 文件管理器 ,那里的显示文件,就是用这个控件(当然从WIN8开始用增强版的,和这个控件有差异,但是大差不差)

这个控件有4种形态

大多我们是用来,显示列表,显示二维数组。
列表头设置
- 设计属性设置

- 写代码设置
ListView1.AddColumn("表头名",LVCFMT_CENTER ,宽度)
添加数据
添加一行数据的例题,只能一行一行,一列一列添加。
Dim 行 As Long = ListView1.AddItem("0数据")
ListView1.SetItemText(行, 1, "1数据")
ListView1.SetItemText(行, 2, "2数据")
ListView1.SetItemText(行, 3, "3数据")
常用事件
点击项目
Sub Form1_ListView1_LVN_ItemChanged(hWndForm As hWnd, hWndControl As hWnd, pNMV As NM_LISTVIEW)
If pNMV.uNewState <> 3 Then Return '非用户点击和去除一次点击多次事件,可根据实际情况相应修改。
End Sub
常用属性
ListView1.DeleteAllItems '删除全部数据
ListView1.DeleteItem '删除一行数据
ListView1.InsertItem '插入一行数据
添加图标
每行数据,都可以设置一个图标。
先添加一个图像列表控件,此控件只装载图像,不显示任何内容。

给 ImageList1 控件添加图像

再把 ListView1 绑定这个控件,如果显示的只是列表,就绑定小图标即可

添加数据时,设置图像索引即可,索引就是 ImageList1 控件里的第几个图像
Dim 行 As Long = ListView1.AddItem("0数据",0,图像控件的索引)
ListView1.SetItemText(行, 1, "1数据")
列表自绘
本控件支持自绘,需要在设计属性里,打勾

代码绘画在事件里(注:每一行每一列都触发一次事件,比如:10行,4列,那么就要触发10*4=40次事件。)
Function Form1_ListView1_OwnerDraw(hWndForm As hWnd, hWndControl As hWnd,lpdis As DRAWITEMSTRUCT) As LResult
Function = FALSE ' 如果处理了此事件,则应返回 TRUE 。
End Function
评论一下?