2013-07-04 53 views
0

我正在通过WIA扫描图像并将图像保存在List中。我想要的是,我想保存从列表中获取图像并在列表视图中显示它们。但是我遇到了一个奇怪的问题。当我点击我的c#窗口应用程序中的扫描按钮时,我的列表只保存最新的图像,而我的列表计数器不会增加到2,它始终保持为1.因此,我的列表只保存最新的图像并覆盖之前的图像。下面是我的代码,当我点击扫描按钮:在ListView中添加扫描图像

  List<Image> images = WIAScanner.Scan((string)lbDevices.SelectedItem); 
      ImageList imageList1 = new ImageList(); 

      foreach (Image image in images) 
      { 
       pictureBox.Image = image; 

       imageList1.Images.Add(image); 

      } 

       this.listView1.View = View.LargeIcon; 
       imageList1.ImageSize = new Size(90, 90); 
       listView1.LargeImageList = imageList1; 

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

回答

1

我想你发布的代码,是躺在你的扫描按钮的Click事件背后的代码。如果是这样,请将以下行放在点击事件之外。

ImageList imageList1 = new ImageList(); 

使用此行,您将重置您的ImageList,每次开始新的扫描时。把这一行放在你的点击方法之外,一切都应该没问题。

+0

是有用的!但现在有另一个问题。现在是因为这条线而使图像翻倍 imageList1.Images.Add(image); while looping –

+0

把“this.listView1.Items.Clear();'放在你的列表中的”for-loop“之前。 ;) 请您接受我的回答。 ;) – netblognet