行与单元格的样式
为了便于学习本节的内容,可以先打开CaseStudy目录下的文件“ListView.Table”,并参考该文件名为“示例十三”的窗口。
ListView的行有个Cell属性,可以获取此行指定列单元格。
ListView的行和单元格都可以设置样式,包括字体、背景颜色和字体颜色:

以上面的图为例,假定要用蓝底白字整行显示东正教国家,以红底白字标出人口列中数值超过10000的单元格,代码为:
Dim
lvw 
As 
WinForm.ListView 
= 
e.Form.Controls("ListView1")
lvw.StopRedraw()
'暂停绘制
lvw.Columns.Clear()
'清除原来的列
lvw.Rows.Clear()
'清除原来的行
lvw.Images.Clear()
'清除原来的图片
lvw.View 
= 
ViewMode.Details
'显示模式为详细信息
lvw.GridLines 
= True 
'显示网格线
Dim 
cls() 
As 
String 
= 
{"国家","人口","面积","语言","宗教","洲"}
'指定要显示的各列
Dim
wds()
As
Integer 
= 
{100,100,130,80,80,80}
'定义列宽
For
i
As
Integer 
= 
0
To 
cls.Length 
- 
1
    
Dim
c
As
WinForm.ListViewColumn 
= 
lvw.Columns.Add()
    
c.Name 
= 
cls(i)
'指定列名
    
c.Text 
= 
cls(i)'指定列标题
    
c.Width 
= 
wds(i)
'指定列宽
Next
lvw.Columns("人口").Text 
= 
"人口(万)"
'修改人口列的标题
lvw.Columns("人口").TextAlign 
= 
HorizontalAlignment.Right
'人口列靠右对齐
lvw.Columns("面积").TextAlign 
= 
HorizontalAlignment.Right
'面积列靠右对齐
For Each 
dr 
As 
DataRow 
In DataTables("国家").DataRows
'从数据表中提取数据
    Dim 
Key 
As 
String 
= 
dr("图标")
    Dim 
vr 
As  
WinForm.ListViewRow 
=  
lvw.Rows.Add()
'增加一行
    
lvw.Images.AddSmallImage(Key,
Key
&
".ico")
'添加代表这个国家的图标
    
vr.ImageKey 
= 
Key
'指定图标键值
    For Each 
cl 
As 
String 
In 
cls
'逐列取值
        Select Case 
cl
            Case 
"人口","面积"
'如果是人口列或面积列
                
vr(cl) 
= 
format(dr(cl),"#,000")
'则显示千位分割符号
            Case Else
                
vr(cl) 
= 
dr(cl)
        
End Select
    Next
    If 
dr("宗教") 
= "东正教" 
Then 
'用蓝底白字整行显示东正教国家
        
vr.BackColor 
= Color.Blue
        
Vr.ForeColor 
= Color.White
    End If
    If 
dr("人口") 
> 10000 
Then 
'人口列数值大于10000的单元格,用红底白字显示
        
vr.CellUseRowStyle 
= False 
'必须将行的CellUseRowStyle属性设置为False,才能单独设置此行单元格的格式
        With 
vr.Cells("人口")
            .BackColor 
= Color.Red
            .ForeColor 
= Color.White
        End With
    End If
Next
lvw.ResumeRedraw()
'恢复绘制
一些提示:
1、在默认情况下,对于单元格格式的设置是不会生效的,只有将行的CellUseRowStyle属性设置为False,才能单独设置此行单元格的样式。
2、列没有样式。