Comment trouver le nième colonne sélectionnée dans 1 ListView ?

Signaler
Messages postés
4
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juin 2017
-
Messages postés
39
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
21 mai 2015
-
Bonjour,

Je cherche comment avoir le numéro de ma colonne sélectionnée dans une listview.
J'arrive à avoir la nième ligne mais je souhaite ensuite avoir la nième colonne qui a été sélectionnée.

Voici mon code :

Private Sub LV_LMM_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LV_LMM.SelectedIndexChanged
Dim LaLigne As ListViewItem
If Not (LV_LMM.SelectedIndices.Count.Equals(0)) Then
LaLigne = LV_LMM.SelectedItems(0)
Ls_texte = LaLigne.SubItems(???).Text
End If
End Sub

Je ne sais pas comment obtenir ????.

Merci de votre aide.

3 réponses

Messages postés
7378
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 mai 2021
122
Bonjour,

Un nouveau projet avec une listview
Regarde ce que fait ce code tu auras ta solution:

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With Me.ListView1

'Setup listview properties
.View = View.Details
.Dock = DockStyle.Fill
.GridLines = True
.FullRowSelect = True

'Add columns
For i As Integer = 0 To 5
.Columns.Add("Col " & i)
Next

'Add rows
For y As Integer = 0 To 15
Dim objLvi As New ListViewItem
objLvi.Text = "Cell " & "0" & "," & y
For x As Integer = 1 To 5
objLvi.SubItems.Add("Cell " & x & "," & y)
Next
.Items.Add(objLvi)
Next
End With

End Sub
Private Sub ListView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
Dim col As Integer = getClickedColumn(Me.ListView1, e.X)
Dim row As Integer = Me.ListView1.SelectedIndices(0)
Dim cellText As String = Me.ListView1.Items.Item(row).SubItems.Item(col).Text

MsgBox("col " & col & ", row " & row & _
Environment.NewLine & _
"text = " & Chr(34) & cellText & Chr(34))

End Sub
Private Function getClickedColumn(ByVal pListView As ListView, ByVal pMouseX As Integer) As Integer
Dim result As Integer = 0
'Get column rights
Dim colRights As New List(Of Integer)
Dim colWidths As New List(Of Integer)
For Each col As ColumnHeader In pListView.Columns
colWidths.Add(col.Width)
Dim colRight As Integer = 0 ' - pListView.Columns.Item(0).Width 'Subtract this if you were collecting lefts instead of rights
For i As Integer = 0 To colWidths.Count - 1
colRight += colWidths(i)
Next
colRights.Add(colRight)
Next

'Which column does the mouse X fall inside?
Dim colIndex As Integer = 0
For Each colRight As Integer In colRights
If pMouseX <= colRight Then
result = colIndex
Exit For
End If
colIndex += 1
Next

Return result
End Function
End Class
.

Messages postés
4
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juin 2017

Salut,
Merci de ton aide.
Je vais regarder.
Tchuß
Messages postés
39
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
21 mai 2015

Salut,

Désolée de ne pas avoir répondu plus tôt mais merci beaucoup pour ton aide. J'ai trouvé ce qu'il me faut.

Tchuß