Selecting an entire row in a ListView

Selecting an entire row in a ListView

The ListView control that comes with VB6 lets you select an entire row by setting its FullRowSelect property to True. If you are working with VB5 or you’re using VB6 with the old version of the Microsoft Windows Controls this capability isn’t avaible, but if you have installed the comctl32.dll version 4.70 or greater (shipped with IE3.x or greater), you can implement it by just setting a given ListView style bit. You can achieve that by sending the message LVS_EX_FULLROWSELECT to the control. Here’s the routine to set this new property:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _    hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, _    lParam As Any) As LongConst LVM_FIRST = &H1000Const LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54Const LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55Const LVS_EX_FULLROWSELECT = &H20Sub SetFullRowSelection(ByVal hWndListView, ByVal bFullRow As Boolean)   SendMessageLong hWndListView, VM_SETEXTENDEDLISTVIEWSTYLE, _       LVS_EX_FULLROWSELECT, ByVal CLng(bFullRow))End Sub

This is an example of how you can use this routine:

' enable full row selectingSetFullRowSelection ListView1.hwnd, True' disable full row selectingSetFullRowSelection ListView1.hwnd, False


Share the Post: