VB Code:
Option Explicit
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
'don't let the user select 2nd item
If Item.Index = 2 Then Item.Selected = False
End Sub
Private Sub Form_Load()
' Just for testing ==>
Dim i As Long
Dim tmpLstitem As ListItem
Dim lForeColor As Long
With ListView1
.View = lvwReport
.MultiSelect = True
.ColumnHeaders.Add , , "Col_1"
.ColumnHeaders.Add , , "Col_2"
.ColumnHeaders.Add , , "Col_3"
'
For i = 1 To 10
Set tmpLstitem = .ListItems.Add(, , "Item_" & i)
tmpLstitem.ListSubItems.Add , , "Subitem_1"
tmpLstitem.ListSubItems.Add , , "Subitem_2"
'
If i = 2 Then
lForeColor = vbGrayText 'Grayout the 2nd item
Else
lForeColor = vbAutomatic
End If
tmpLstitem.ForeColor = lForeColor
tmpLstitem.ListSubItems(1).ForeColor = lForeColor
tmpLstitem.ListSubItems(2).ForeColor = lForeColor
Next
End With
End Sub