在列表视图和图像列表中显示文件名。显示所选项目的文件名

Show filename in listView and imagelist. Show filename of selected item

我已经设置了 imageList 和 listView。理想情况下,我希望文件名显示在图片下方。

已更新 使用下面提到的 item.Tag 我可以移动一些东西。我现在有文件名跟踪选择了哪个文件。现在我只需要看看我是否可以让文件名显示在列表视图中。

这是新代码:

private void GetImages()
    {
        DirectoryInfo dir = new DirectoryInfo(@"c:\pics");
        this.listView1.View = View.LargeIcon;
        this.imageList1.ImageSize = new Size(67, 100);
        this.listView1.LargeImageList = this.imageList1;
        int j = 0;
        foreach (FileInfo file in dir.GetFiles())
        {
            try
            {
                imageList1.Images.Add(file.Name, Image.FromFile(file.FullName));
                ListViewItem item = new ListViewItem(file.Name);
                item.Tag = file.Name;
                item.ImageIndex = j;
                this.listView1.Items.Add(item);
                j++;
            }
            catch
            {
                Console.WriteLine("This is not an image file");
            }
        }
    }

    private void listView1_Click(object sender, EventArgs e)
    {
        ListViewItem item = listView1.SelectedItems[0];
        label1.Text = item.Tag.ToString();
        int itemIndex = listView1.SelectedIndices[0];
        Image img = imageList1.Images[itemIndex];
        pictureBox1.Image = img;
    }

好的,我想我已经简化了其他一些答案。通过这种方式,我可以让文件名显示在图像下方。此外,当图像被选中时,我能够利用它。

我正在使用 item.tag 来保存文件名。

private void GetImages()
    {
        DirectoryInfo dir = new DirectoryInfo(@"c:\pics");
        this.listView1.View = View.LargeIcon;
        this.imageList1.ImageSize = new Size(100, 100);
        this.listView1.LargeImageList = this.imageList1;
        int j = 0;
        foreach (FileInfo file in dir.GetFiles())
        {
            try
            {
                //this.imageList1.Images.Add(Image.FromFile(file.FullName));
                imageList1.Images.Add(file.Name, Image.FromFile(file.FullName));
                ListViewItem item = new ListViewItem(file.Name);
                item.Tag = file.Name;
                item.ImageIndex = j;
                this.listView1.Items.Add(item);
                j++;
            }
            catch
            {
                Console.WriteLine("This is not an image file");
            }
        }
    }

现在,在 listview1_Click 或其他号召性用语中,我可以使用以下内容来利用文件名标签。

ListViewItem item = listView1.SelectedItems[0];
txtNewWM.Text = item.Tag.ToString();