在ListView视图内容数据为50条记录,那么,怎么方法使用command1逐渐末显示的内容位置开始定位下来,
  每次单击按钮时,只显示ListView窗体高度的大小,继续按钮时,又末显示的内容位置开始显示。
   就像Next方法。
   

解决方案 »

  1.   

    ListView视图不能一次都50条那么一眼看到了,只能滚动一下才能全部看了。 所以阿, 我使用command1按一次滚动ListView窗体底边末显示的位置开始滚动显示出来。
      

  2.   

    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
      

  3.   

    不是要求一行一行滚动,应该末显示的开头直接移动至ListView1视图最上面。
      

  4.   

    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
        
        ListView1.ListItems(i).EnsureVisible
    End Sub