Aide sur un listview vs le code d'un listbox

Résolu
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour a tous,
j'ai trouver une source sur vbfrance, mias elle est pour un listbox. Je voudrais savoir si quelqu'un peut m'aider pour faire en sorte que ce code fonctionne pour un listview avec 3 subitem.

'For a = 0 To cList.ListCount - 1 'Scan tout le ListBox pour trouvé une chaine ressemblante
       ' If cList.List(a) Like cTextBox.Text & "*" Then 'Si elle ressemble
               ' With cTextBox 'Propriété ratacher au TextBox
                 '   .Text = cList.List(a) 'Texte a afficher
                  '  .SelStart = b 'Assurer que sa se mêle pas
                   ' .SelLength = Len(.Text) - b 'Pour selectionner
               ' End With
           ' Exit Function
       ' End If
    'Next a

Merci a tous
DraaFil

10 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Donc c'est bien ce qu'il me semblait dans ton code : la saisie assistée.

Autant pour moi pour l'incompréhension du .Text, je croyais que c'était le ListBox dans le with !

Il te suffit donc de rajouter un ListSubItem(1) pour accèder à la deuxième colonne :

For a = 1 To cList.ListItems.Count 'Scan tout le ListBox pour trouvé une chaine ressemblante
        If cList.ListItem(a).ListSubItem(1).Text Like cTextBox.Text & "*" Then 'Si elle ressemble
               With cTextBox 'Propriété ratacher au TextBox
                    .Text = cList.ListItem(a).ListSubItem(1).Text 'Texte a afficher
                    .SelStart = b 'Assurer que sa se mêle pas
                    .SelLength = Len(.Text) - b 'Pour selectionner
                End With
            Exit Function
        End If
    Next a
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Ca doit donner un truc comme cà :

For a = 1 To cList.ListItems.Count 'Scan tout le ListBox pour trouvé une chaine ressemblante
        If cList.ListItem(a).Text Like cTextBox.Text & "*" Then 'Si elle ressemble
               With cTextBox 'Propriété ratacher au TextBox
                    .Text = cList.ListItem(a).Text 'Texte a afficher
                    .SelStart = b 'Assurer que sa se mêle pas
                    .SelLength = Len(.Text) - b 'Pour selectionner
                End With
            Exit Function
        End If
    Next a

Y'a quelques trucs que je comprends pas par contre : où sont les 3 colonnes ?
le cList mis en gras, c'est une deuxième listbox ?
le .Text mis en gras, il sert à quoi ? Car si ton texte de l'item a est plus long que le len(.Text) - b, il ne sera pas sélectionné complètement...
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

le code original contient un textbox et un listbox. Moi ce que je veux c'est de remplacer le listbox pas un listview (a 3 colonne). Ce code sert a la saisie semi-automatique, il cherche dans la listbox et affiche le mot dans le textbox, mais comme je disais , je veux remplacer la listbox par un listview.

clist = listbox (je veux un listview a la place)
cTextBox = textbox (je le garde)

merci
DraaFil
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

j'avais ouvlier de dire que je dois comparrer le mot dasn la listview das nla 2ieme colonne
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

c'est quoi la comment pour selectionner une ligne dans un listview

merci
DraaFil

ton code fonctionne
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Avec le listView, tout est objet, ce qui facilite grandement les choses, et permet bien plus de possibilité.

Ainsi, chaque ligne de ton listview est un objet ListItem, donc tu y accède par la collection ListView.ListItems
De même, les colones sont des objets ListSubItem que tu retrouve dans la collection ListSubItems de chaque ListItem
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

ok, mias je vais etre plus precie, je veux ajouter une ligne de comment dans le code si haut qui fait que le testbox marque le nom de la listview mais aussi que ce nom soit selectionner par lui-meme et non par un click de souris.

ex: view1.listitems.select(a)

merci
DraaFil
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
C'est presque cà :
view1.listitems(a).selected = true

Il faut penser objet, et non procédural : les listitems sont tous des objets indépendants l'un de l'autre => ce n'est pas un tableau de propriété, mais une collection d'objets
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

ok, as-tu un bon tutorial pour les listview ou une bonne source complete ou site

merci pour ton aide, c<est tres apprecier

DraaFil
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Non j'ai rien sous le coude, mais en regardant par-ci par-là tu devrais trouver assez rapidement des réponses à toutes tes questions. MSDN, tutoriaux de ce site, le forum, etc.