获取选定列表视图项中的图像

本文关键字:图像 视图 列表 获取 | 更新日期: 2024-10-31 16:36:41

这是我正在使用的,但我得到一个错误:

private void listView1_DoubleClick(object sender, EventArgs e)
{
    foreach (ListViewItem itm in listView1.SelectedItems)
    {
        pictureBox1.Image = System.Drawing.Image.FromFile(itm.SubItems[1].Text);
    }
}

我得到:InvalidArgument=Value of '1' is not valid for 'index'. Parameter name: index

如何解决此问题?

这就是我如何使用图像列表中的图像填充列表视图(这些图像添加到属性项集合中)

for (int j = 0; j < this.imageList1.Images.Count; j++)
        {
            ListViewItem item = new ListViewItem();
            item.ImageIndex = j;
            this.listView1.Items.Add(item);
        }

获取选定列表视图项中的图像

你列出视图项只有 1 个子项,这些子项似乎是空字符串(这不是有效的路径)。

图像

列表不保留图像的路径信息。相反,它创建了一个嵌入在可执行文件中的副本。

请尝试以下代码:

private void listView1_DoubleClick(object sender, EventArgs e)
{
    foreach (ListViewItem itm in listView1.SelectedItems)
    {
        int imgIndex = itm.ImageIndex;
        if ( imgIndex >= 0 && imgIndex < this.imageList1.images.Count)
        {
            pictureBox1.Image = this.imageList1.images[imgIndex];
        }
    }
}

InvalidArgument=Value of '1' is not valid for 'index'. Parameter name: index'是在子项集合中提供无效索引时将得到的错误。 您可能没有超过 1 个子项。 尝试将代码更改为以下内容:

private void listView1_DoubleClick(object sender, EventArgs e)
{
    foreach (ListViewItem itm in listView1.SelectedItems)
    {
        pictureBox1.Image = System.Drawing.Image.FromFile(itm.SubItems[0].Text);
    }
}

这段代码对我有用:D

private void listView1_DoubleClick(Object sender, EventArgs e) {

        if (listView1.SelectedItems.Count > 0)
        {
            var item = listView1.SelectedItems[0];
            var img = item.ImageList.Images[item.ImageIndex];
            pictureBox1.Image = img;
        }
    }