ListView a affichage progressif [Résolu]

Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
- - Dernière réponse : MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
- 20 janv. 2006 à 15:03
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 :)
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
3
Merci
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#]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de sebmafate
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
0
Merci
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...
Commenter la réponse de Nikoui
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
0
Merci
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 :/
Commenter la réponse de MoDDiB
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
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#]
Commenter la réponse de sebmafate
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
0
Merci
Beuh j'étais pas enervé j'ai mis un smiley non mais
Commenter la réponse de MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
0
Merci
Comment gérer l'évement SelectedIndexChanged ?
En effet la liste SelectedItems n'est plus accessible en mode virtuel
Commenter la réponse de MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
0
Merci
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 :)
Commenter la réponse de MoDDiB
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
0
Merci
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
Commenter la réponse de MoDDiB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.