1

これが私が使用しているものですが、エラーが発生します:

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

3 に答える 3

2

listViewItemsには、空の文字列(有効なパスではない)のように見えるサブアイテムが1つだけあります。

ImageListは、画像のパス情報を保持しません。代わりに、実行可能ファイルに埋め込まれたコピーを作成しました。

代わりにこのコードを試してください:

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];
        }
    }
}
于 2012-08-08T03:13:01.613 に答える