2013-07-04 92 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