Option ExplicitPrivate Sub Command1_Click() Dim lvi As ListItem Dim iFirstVisible As Long Dim i As Long
Set lvi = ListView1.GetFirstVisible() If lvi Is Nothing Then Exit Sub
iFirstVisible = lvi.Index For i = iFirstVisible + 1 To ListView1.ListItems.Count ListView1.ListItems(i).EnsureVisible
If ListView1.GetFirstVisible().Index <> iFirstVisible Then Exit Sub End If Next End SubPrivate Sub Form_Load() Dim i As Long For i = 1 To 50 ListView1.ListItems.Add , , i Next End Sub
不是要求一行一行滚动,应该末显示的开头直接移动至ListView1视图最上面。
Private Sub Command1_Click() Dim lvi As ListItem Dim iFirstVisible As Long Dim iVisibleCount As Long Dim i As Long
Set lvi = ListView1.GetFirstVisible() If lvi Is Nothing Then Exit Sub
iFirstVisible = lvi.Index For i = iFirstVisible + 1 To ListView1.ListItems.Count ListView1.ListItems(i).EnsureVisible
If ListView1.GetFirstVisible().Index <> iFirstVisible Then Exit For End If Next If i > ListView1.ListItems.Count Then Exit Sub
iVisibleCount = (i - iFirstVisible) i = iFirstVisible + iVisibleCount * 2 - 1 If i > ListView1.ListItems.Count Then i = ListView1.ListItems.Count End If
Dim lvi As ListItem
Dim iFirstVisible As Long
Dim i As Long
Set lvi = ListView1.GetFirstVisible()
If lvi Is Nothing Then Exit Sub
iFirstVisible = lvi.Index
For i = iFirstVisible + 1 To ListView1.ListItems.Count
ListView1.ListItems(i).EnsureVisible
If ListView1.GetFirstVisible().Index <> iFirstVisible Then
Exit Sub
End If
Next
End SubPrivate Sub Form_Load()
Dim i As Long
For i = 1 To 50
ListView1.ListItems.Add , , i
Next
End Sub
Dim lvi As ListItem
Dim iFirstVisible As Long
Dim iVisibleCount As Long
Dim i As Long
Set lvi = ListView1.GetFirstVisible()
If lvi Is Nothing Then Exit Sub
iFirstVisible = lvi.Index
For i = iFirstVisible + 1 To ListView1.ListItems.Count
ListView1.ListItems(i).EnsureVisible
If ListView1.GetFirstVisible().Index <> iFirstVisible Then
Exit For
End If
Next If i > ListView1.ListItems.Count Then Exit Sub
iVisibleCount = (i - iFirstVisible)
i = iFirstVisible + iVisibleCount * 2 - 1
If i > ListView1.ListItems.Count Then
i = ListView1.ListItems.Count
End If
ListView1.ListItems(i).EnsureVisible
End Sub