ListView是一个简单实现的网格控件,在VB6.0中,这个控件因为很多缺陷而令人诟病。在VB.NET2008中,ListView有了不少改进,下面介绍两个常用效果的实现。
一、修改行高:
ListView控件没有行高这个属性,跟VB6.0一样,也只能使用ImageList控件来撑高的方式,但是实现起来却更简单,只需要三句代码即可。
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1
Dim
ImgList
As
New
ImageList
2 ImgList.ImageSize = New Size( 1 , 21 )
3 ListView1.SmallImageList = ImgList
2 ImgList.ImageSize = New Size( 1 , 21 )
3 ListView1.SmallImageList = ImgList
二、隔行背景换色:
在VB6.0中,要实现ListView控件的隔行背景换色,一般都是使用图片作背景,这种方法有个缺陷,就是Picture的高度有限制,如果ListView控件过高,那么下面的背景就显示不正常了。
在VB.NET2008中,实现ListView隔行换色变得容易多了。
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1
ListView1.Items.Item(
1
).UseItemStyleForSubItems
=
False
'
允许子单元颜色不一样
2 If ListView1.Items.Count \ 2 Mod 2 = 0 Then ' 隔行背景
3 ListView1.Items.Item( 1 ).BackColor = Color.WhiteSmoke
4 Else
5 ListView1.Items.Item( 1 ).BackColor = Color.White
6 End If
2 If ListView1.Items.Count \ 2 Mod 2 = 0 Then ' 隔行背景
3 ListView1.Items.Item( 1 ).BackColor = Color.WhiteSmoke
4 Else
5 ListView1.Items.Item( 1 ).BackColor = Color.White
6 End If
效果图如下: