Salut,
J'ai un exercice de c# à réaliser dans le cadre d'un TP, il s'agit de créer un afficheur d'image. Il y a donc 3 parties distinctes : une PictureBox à droite pour afficher l'image sélectionnée, un TreeView (repertoire) en haut à gauche pour sélectionner le dossier et une ListView (fichiers) pour afficher le contenu du dossier choisi.
Le problème est que j'arrive à ouvrir et sélectionner un dossier mais lorsque je clique dessus, les images qu'il est censé contenir ne s'affiche pas dans la ListView.

Voici le code du form1.cs :
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        private ImageList imageList1 = new ImageList();
 
        public Form1() /// Mise en place des éléments qui composent la fenêtre
        {
            InitializeComponent();
        }
 
        private void ouvrirToolStripButton_Click(object sender, EventArgs e)
        {
            /*// Displays an OpenFileDialog so the user can select a Cursor.
            OpenFileDialog opfd = new OpenFileDialog();
            opfd.Filter = "Fichiers JPEG|*.jpg";
            opfd.Title = "Choisir le fichier";
 
            // Show the Dialog.
            // If the user clicked OK in the dialog and
            // a .jpg file was selected, open it.
            if (opfd.ShowDialog() == DialogResult.OK)
            {
                string filename = opfd.FileName;
                ChargerImage(filename);
            }*/
            FolderBrowserDialog fld = new FolderBrowserDialog();
            fld.Description = "Choisir le repertoire d'image";
            fld.RootFolder = Environment.SpecialFolder.MyPictures;
            if (fld.ShowDialog() == DialogResult.OK)
            {
                    string filename = fld.SelectedPath;
                    foreach (string f in Directory.GetDirectories(fld.SelectedPath))
                    {
                        TreeNode tn = new TreeNode(f);
                        repertoire.Nodes.Add(tn);
                    }
            }
 
        }
 
        private void repertoire_AfterSelect(object sender, TreeViewEventArgs e)
        {
            ChercherImage(e.Node.Text);
        }
 
 
        private void ChargerImage(string filename) /// Charge l'image dans la "boîte à image"
        {
            pictureBox1.Image = Image.FromFile(filename);
            this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            this.pictureBox1.Text = filename;
        }
 
        private void ChercherImage(string path) /// Affiche l'ensemble des fichiers et leurs icônes lorsqu'un dossier est sélectionné
        {
            fichiers.View = View.LargeIcon;
            imageList1.ImageSize = new Size(80, 60);
            fichiers.LargeImageList = imageList1;
            string[] files = Directory.GetFiles(path); /// Stocke la liste des fichiers
            foreach (string s in files)
            {
                if (s.ToUpper().EndsWith("jpg")) /// Contrôle qu'il sagit bien d'une image
                {
                    Image im = Image.FromFile(s);
                    imageList1.Images.Add(im.GetThumbnailImage(106, 120, null, IntPtr.Zero)); /// Création des miniatures
                    im.Dispose();
                    ListViewItem lw = new ListViewItem(s, imageList1.Images.Count - 1);
                    fichiers.Items.Add(lw);
                }
            }
        }
 
        private void fichiers_Click(object sender, EventArgs e) /// Sélection du fichier à afficher
        {
            string f;
            if (fichiers.SelectedIndices.Count > 0)
            {
                f = fichiers.SelectedItems[0].Text;
                ChargerImage(f);
            }
        }
 
    }
}