Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim pg As Integer = e.Form.Controls("Label1").Text
Dim idx1 As Integer = (pg - 1) * 5 '获取要显示的第一行
Dim idx2 As Integer = pg * 5 - 1 '获取要显示的最末行
idx2 = Math.Min(Tables("国家").Rows.Count -1,idx2) 'idx2不能超过表的最大行数
lvw.Images.Clear() '清除之前的图片
lvw.Rows.Clear() '清除之前的行
For idx As Integer = idx1 To idx2
Dim dr As Row = Tables("国家").Rows(idx) '根据行位置从数据表中取得对应的DataRow
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() '在ListView增加一行
Dim Key As String = dr("图标")
lvw.Images.AddImage(Key, Key & ".ico", Key & "48.ico") '添加代表这个国家的图标
vr.Imagekey = key '指定图标键值
For Each cl As WinForm.ListViewColumn In lvw.Columns '逐列取值
Select Case cl.Name
Case "人口","面积" '如果是人口列或面积列
vr(cl.Name) = Format(dr(cl.Name),"#,000") '则显示千位分割符号
Case Else
vr(cl.Name) = dr(cl.Name)
End Select
Next
Next
在显示按纽里面添加了上面的代码,第一页,末页等所有按纽都不能用,筛选,取消筛选也不能用,总是出来索引超出了数据界线