Microsoft “forgot” to provide the ListView control with the GetVisibleCount property, as it did, for example, with the TreeView control. However, getting this information is as easy as sending a message to the control:
Private Const LVM_FIRST = &H1000Private Const LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40)Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long' Return the number of visible items in a ListView controlPrivate Function ListViewGetVisibleCount(LV As ListView) As Long ListViewGetVisibleCount = SendMessage(LV.hwnd, LVM_GETCOUNTPERPAGE, 0&, _ ByVal 0&)End Function