Bonjour,

J'ai un petit soucis pour ajouter des miniatures dans une ListView, ou plutôt ajouter des miniatures après avoir supprimer une image de cette même ListView.
Voici ce qui se passe :

Ici, j'ai ouvert 4 images, RAS


Ici, j'ai supprimé une image, RAS


Maintenant, j'ai ajouté plusieurs autres images, et il y a un léger problème


Les quelques lignes de code qui gére la ListView :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
imgListThbNails; //Imagelist qui contient les miniatures
lsThumbNails; //Listview pour afficher les miniatures
 
private void bwThbNails_DoWork(object sender, DoWorkEventArgs e)
        {
//Au début indexlist est à 0
            for (; indexlist < photo.Count; indexlist++) //Je part de la valeur courante de indexlist et je charge les nouveau fichier
            {
                Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                imgListThbNails.Images.Add(photo[indexlist].Image.GetThumbnailImage(100, 100, myCallback, IntPtr.Zero));
                lsThumbNails.Items.Add(Path.GetFileNameWithoutExtension(photo[indexlist].Filename), indexlist);
                lsThumbNails.Items[indexlist].ImageIndex = indexlist;
            }
        }
 
        private void lsThumbNails_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < photo.Count; i++)  //Je recherche l'element sélectionné
            {
                if (lsThumbNails.Items[i].Selected == true)  //Celui ci est sélectionné
                {
                    pBox.Image = photo[index = i].Image;  //Je l'affiche dans la PBox
 
                    i = photo.Count;  //Pour sortir de la boucle
                }
            }
        }
 
        private void tsmDelIcon_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < photo.Count; i++)  //Je recherche l'élément sélectionner dans la listview
            {
                if (lsThumbNails.Items[i].Selected == true)  //Si il est selectionné
                {
                    lsThumbNails.Items.RemoveAt(i);  //je le supprime de la listview
                    imgListThbNails.Images.RemoveByKey(photo[i].Filename);  //je le supprime de l'imagelist
                    bDelete_Click(sender, e);  //Je la supprime de l'ecran
                }
            }
 
            indexlist = photo.Count;  //Je place l'index de la listview égale à celui du nombre de fichier contenu dans ma liste photo
        }
Les aperçus dans la ListView, sont tous décalés à partir de la troisième image, pourtant lorsque je clique dessus c'est la bonne image qui s'affiche en grand.
Le Backgroundworker est appelé lorsque j'ouvre des nouvelles images.
J'ai cherché dans tout le code qui gére ces actions mais je ne trouve rien.
Si quelqu'un pouvait m'aider ??

Merci

Bonne soirée