Contrôle ListView

Signaler
Messages postés
3
Date d'inscription
mercredi 2 octobre 2013
Statut
Membre
Dernière intervention
4 novembre 2013
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bravo pour ce code, pile poil ce dont j'avais besoin... Mais, juste une question : qu'est-ce qui fait que, chez moi, s'il y a plus 3 vignettes, la première est systématiquement sélectionnée? J'ai recopié exactement la partie du source qui m'intéressait et également le ListView original, qui fonctionne comme je voudrais, mais pas une fois copié... Mystère et boule de gomme.

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Gné ?
Quel code ? Quel source ?
Messages postés
3
Date d'inscription
mercredi 2 octobre 2013
Statut
Membre
Dernière intervention
4 novembre 2013

oh, la-la, je croyais que, postant un message à la suite d'autres à propos d'une source en VB6 utilisant ce contrôle, le sujet serait reconduit ... Il semble que non. Bon, c'est simple : j'ai récupéré cette source qui m'intéressait mais, à l'usage, j'ai un effet de bord qui me gêne un brin : la première icône du ListView est sélectionnée, mais seulement si j'ai plus de 3 images à afficher. Pourtant, j'ai recopié strictement la procédure et l'objet en question ainsi que son contenu, en ne changeant que les noms des objets pour y mettre les miens. Je me demandais s'il ne s'agirait pas tout simplement qu'une question de focus, encore que je ne voie pas ce qu'il faudrait faire pour que la première icône ne soit jamais sélectionnée : si je clique dans une autre fenêtre, la sélection disparaît mais revient dès que je suis de nouveau dans le ListView... Je ne vois surtout pas pourquoi cet effet ne se produit pas sur la source originale.

La source en question :

' Réinitialise les contrôles Liste_miniatures et ImageList pour éviter les doubles
Liste_miniatures.Icons = Nothing
Liste_miniatures.ListItems.Clear
Liste_miniatures.Refresh

ImageList.ListImages.Clear

File_liste.Path = Repertoire

On Error Resume Next

For i = 0 To File_liste.ListCount - 1 ' parcours de la liste des fichiers
' Incrémente Index pour ImageList
Index = i + 1
' Charge l'image dans le contrôle Source
Source.Picture = LoadPicture(File_liste.Path & "\" & File_liste.List(i))
' Récupère la hauteur et la largeur du contrôle Source
Hauteur = Source.ScaleHeight
Largeur = Source.ScaleWidth
' Si la hauteur dépasse une certaine dimension
If Hauteur > 76.8 Then
Largeur = 76.8 * Source.ScaleWidth / Source.ScaleHeight
Hauteur = 76.8
End If
' Si la largeur dépasse une certaine dimension
If Largeur > 102.4 Then
Hauteur = 102.4 * Source.ScaleHeight / Source.ScaleWidth
Largeur = 102.4
End If
' Affiche la nouvelle image dans le contrôle Cible
Cible.PaintPicture Source, (Cible.ScaleWidth - Largeur) / 2, (Cible.ScaleHeight - Hauteur) / 2, Largeur, Hauteur
' Ajoute l'image dans le contrôle Imagelist comme une icone
ImageList.ListImages.Add , , Cible.Image
' Si ImageList non défini dans Liste_miniatures alors on le définit
If Liste_miniatures.Icons Is Nothing Then Liste_miniatures.Icons = ImageList
' Ajoute dans la Liste_miniatures l'image sous forme d'icone
Liste_miniatures.ListItems.Add , , File_liste.List(i), Index
' Réinitialise le contrôle Cible
Cible.Cls
Next

' Une fois terminé classe les images au Top
Liste_miniatures.Arrange = lvwAutoTop '(en fait, ça ne sert à rien...)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
C'est curieux.
Je ne sais toujours pas de quel source il s'agit, mais j'ai l'impression (étrange ?) de ce qu'il ne s'agit pas là de VB.Net (la présente section du forum) , mais de VB6 (très différent).
Sous quoi développes-tu donc, finalement ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
3
Date d'inscription
mercredi 2 octobre 2013
Statut
Membre
Dernière intervention
4 novembre 2013

Ben, comme c'est indiqué dès la deuxième ligne, c'est du VB6... Donc, je me suis (encore!) planté de forum?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Oui .?..
Je déplace donc vers VB6 ...