Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const SB_LINEDOWN As Long = 1
Private Const WM_VSCROLL As Long = &H115
Private Sub Command1_Click()
Dim itemX As ListItem
Set itemX = ListView1.FindItem(Text1.Text, , , lvwPartial)
If Not itemX Is Nothing Then
itemX.Selected = True
itemX.EnsureVisible
Call SetTopIndex(itemX.index)
End If
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 50
ListView1.ListItems.Add , , i & " item"
Next
End Sub
Private Sub SetTopIndex(ByVal index As Long)
Dim i As Long
Dim v As Long
v = (ListView1.ListItems(index).Top - ListView1.Top) / ListView1.ListItems(1).Height
For i = 1 To v
Call SendMessage(ListView1.hwnd, WM_VSCROLL, SB_LINEDOWN, ByVal 0&)
Next
End Sub