ListView a affichage progressif [Résolu]

Signaler
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
-
MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
-
Bonjour à tous,
Je cherche à créer une visualiseuse d'images.
Toutes les images du dossier courant sont affichées en miniature dans une listview.
Mon problème est qu'en cas de nombre trop important d'images l'attente devient considérable.
Les charger sur un autre Thread donne un scintillement très désagréable et n'est pas très exploitable.
J'ai songé à ne charger qu'un nombre restreint d'images puis de recharger à chaque utilisation de la scrollbar mais je ne
vois pas comment procéder.

J'attends vos suggestions/réponses/codes
et merci d'avance :)

8 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
ca fait plaisir comme la recherche du site est utilisée :

http://www.csharpfr.com/fkey.aspx?k=listview

1ère réponse.

Sébastien FERRAND
[MVP Visual C#]
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
7
J'aurai moi aussi utilisé un thread dédié au chargement... Pourquoi est ce que cela produit un scintillement ? Voila ce que j'aurai fait :
- ta listview est vide
- tu crée le thread qui va parcourir ton dossier et charger les images
- tu abonne ta listview à un évènement de ton thread, par exemple "ImageLoaded"
- a chaque fois que ton thread à lu une image, il déclenche l'évènement (qui possède en paramètre l'image)
- la listview est notifiée, elle ajoute l'image dans ses items.

C'est peut etre comme ca que tu as fais...
Par contre je ne sais pas ce que ca donne, si tu ajoute une image dans la listview alors qu'elle est "ouverte" par l'utilisateur...
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
J'ai passé mon temps à chercher avant de poster malheureusement le titre de ta source n'est en rien explicite :
comment savoir que le mode virtuel correspondais à mon besoin ?
Je comprends totalement ta réponse mais mets toi à ma place :)

En tout cas très bonne source merci
J'essais dès maintenant !

Sinon pour nikoui, j'ai en gros procédé comme toi et ca fonctionne tel que je l'ai decrit :/
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
pas la peine de s'énerver :)

le titre de la source est fonction du nom de la propriété : VirtualMode.

Sébastien FERRAND
[MVP Visual C#]
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Beuh j'étais pas enervé j'ai mis un smiley non mais
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Comment gérer l'évement SelectedIndexChanged ?
En effet la liste SelectedItems n'est plus accessible en mode virtuel
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Ne jamais programmer trop tard on pose des question à la con !
Pour ceux qui cherche comment faire c'est l'évement VirtualItemsSelectionRangeChanged ..... Oui c'est évident comme nom :)
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
En fait non l'évenement VirtualItemsSelectionRangeChangedne renvoie que les items affichés
J'aimerai donc savoir comment proceder pour retrouver l'index de l'item sélectionné en mode virtuel