在listView和imagelist中显示文件名。显示所选项目的文件名

时间:2015-01-08 04:54:30

标签: c# listview listviewitem imagelist

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

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

这是新代码:

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;
    }

1 个答案:

答案 0 :(得分:0)

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

我使用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();