获取选定列表视图项中的图像
本文关键字:图像 视图 列表 获取 | 更新日期: 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;
}
}