Aide sur un listview vs le code d'un listbox

Résolu
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 10 sept. 2006 à 04:05
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 12 sept. 2006 à 17:43
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
10 sept. 2006 à 16:44
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
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
10 sept. 2006 à 08:15
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...
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
10 sept. 2006 à 14:51
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
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
10 sept. 2006 à 14:53
j'avais ouvlier de dire que je dois comparrer le mot dasn la listview das nla 2ieme colonne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
11 sept. 2006 à 02:21
c'est quoi la comment pour selectionner une ligne dans un listview

merci
DraaFil

ton code fonctionne
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
11 sept. 2006 à 07:14
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
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
11 sept. 2006 à 23:35
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
12 sept. 2006 à 06:35
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
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
12 sept. 2006 à 16:43
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
12 sept. 2006 à 17:43
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.
0
Rejoignez-nous