Ixi amigo... o ListView não pega as colunas... só as linhas... não há evento para pegar a coluna...tem caso vc clique no cabeçalho mas não no item de uma coluna (evento ColumnClick).
eu desenvolvi uma função baseada no posicionamento do mouse mas funciona com umas ressalvas...
Vc tem q colocar a propriedade FullRowSelected HABILITADA pois, caso não deixe o listview com essa propriedade habilitada, a linha selecionada NÃO IRÁ MUDAR caso vc clique em um subitem. Ele só mudará de linha se selecionar o item, ou seja, a primeira coluna.
Sempre no evento MouseUp
Para usar siga o exemplo:
Private Sub ListView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Col As Integer
Col = ColunaLV(x, ListView)
If Col > 1 And Col <> 0 Then 'SUBITEMS
MsgBox ListView.SelectedItem.SubItems(Col - 1)
ElseIf Col = 1 Then 'ITEM PRINCIPAL
MsgBox ListView.SelectedItem.Text
End If
End Sub
'***********FUNCAO*****************************************
Private Function ColunaLV(ByVal x As Long, ByVal NameLv As ListView) As Integer
Dim i As Long
For i = 1 To NameLv.ColumnHeaders.Count
If x >= NameLv.ColumnHeaders(i).Left And x < (NameLv.ColumnHeaders(i).Left + NameLv.ColumnHeaders(i).Width) Then
ColunaLV = i
Exit For
End If
Next
End Function
Qq dúvida postae
t+