Bonjour à tous ...

Je découvre petit à petit la puissance des Listview et tente de m'y faire, vu que j'utilisait le plus souvent les Listbox auparavant.

Alors, ici je souhaite placer une Listview reprennant 2 colonnes de données en provenance d'une DB.
Voilà mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
With Me.lb_clients
            .Columns.Add("Prénom", 200, HorizontalAlignment.Left)
            .Columns.Add("Nom", 50, HorizontalAlignment.Left)
            .FullRowSelect = True
            .View = View.Details
        End With
 
        Select Case int_choix
            Case 1
                obj_command.CommandText = "Select id_client, prenom_client, nom_client, societe_client From clients Order By" & _
                    " prenom_client, nom_client"
            Case 2
                obj_command.CommandText = "Select id_client, prenom_client, nom_client, societe_client From clients Order By" & _
                    " nom_client, prenom_client"
        End Select
 
        obj_command.Connection = obj_connexion
 
        Dim obj_reader As OleDbDataReader = obj_command.ExecuteReader()
        While obj_reader.Read()
            If (obj_reader("societe_client").ToString = "") Then
                Dim obj_lview As New ListViewItem(obj_reader("prenom_client").ToString)
                obj_lview.SubItems.Add(obj_reader("nom_client").ToString)
                lb_clients.Items.Add(obj_lview)
            Else
                'A venir
            End If
        End While
        obj_reader.Close()
J'arrive à la remplir sans problèmes et à définir mes colonnes, mais se pose les problèmes suivants :

Etant donné que mes données de la Listview sont succeptibles d'être utilisées j'aimerais stocker de manière "invisible" l'index de ma base de données (ce qui était possible avec une Listbox (via la propriété ValueMember). Est-ce qu'il existe un moyen similaire avec une Listview ?

Deuxièmement, alors que je déclare deux colonnes, "prénom" et "nom" et bien comme la largeur affichée de la Listview est supérieur à la largeur des deux colonnes que je définis et bien il y a une troisème colonne qui apparaît et qui en fait est la répétition de la première ...

Merci de vos éclaircissements.