“查看”按钮,写在点击事件:
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current '获取ListView的当前行
If vr Is Nothing Then '如果不存在当前行,也就是内有选定任何一行
Return
End If
Dim dr As DataRow = vr.tag '获取此行对应的DataRow
Dim ps As Integer = Tables("建议栏").FindRow(dr)
If ps >= 0 Then
Tables("建议栏").Position = ps
Forms("建议栏窗口").Open
For Each cl As WinForm.ListViewColumn In lvw.Columns '逐列更新值
vr(cl.Name) = dr(cl.Name)
Next
End If
“显示”按钮代码:
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim pg As Integer = e.Form.Controls("Label1").Text
Dim idx1 As Integer = (pg - 1)*10 '获取要显示的第一行
Dim idx2 As Integer = (pg*10)-1 '获取要显示的最末行
idx2 = Math.Min(DataTables("建议栏").dataRows.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增加一行
For Each cl As WinForm.ListViewColumn In lvw.Columns '逐列取值
vr(cl.Name) = dr(cl.Name)
vr.Tag= dr
Next
Next
问题原由:我在另外一个帖子中提到新增行第一个显示,就按照bin的意思把原来教材中的代码替换为红色部分,新增条位于首行的功能实现了,但是其他的按钮,如:“查看”就出现了上述的问题。
[此贴子已经被作者于2015/4/17 16:59:08编辑过]