控件名称:imagelist1、 listView1、pictureBox1我将生成的若干个图片(图片尺寸:1600 x 1200)存储到imagelist1中,然后在让listView1读取并显示,当点击listView1中的某张图片时,让它按原尺寸显示到pictureBox1中。
现在的问题:当我点击listView1中的图片时,在pictureBox中显示的256 x 256的图片,而不是原尺寸(1600 x 1200).求助各位高手。

解决方案 »

  1.   

    已经设置成Stretch了,显示的尺寸是1600x1200,但是那是从256x256放大后的失真图片
      

  2.   

    附上我的关键代码,请高手帮助啊~! 
                    this.imageList1.Images.Add(img.GetThumbnailImage(256, 256, null, IntPtr.Zero));                this.listView1.Clear();
                    this.listView1.LargeImageList= this.imageList1;  
                 
                    for (int i = 0; i <this.imageList1.Images.Count; i++)
                    {
                        ListViewItem lvi = new ListViewItem();
                        lvi.ImageIndex = i;
                        listView1.Items.Add(lvi);
                    }           点击listView1显示在pictureBox1中的关键代码:                for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
                    {
                        this.pictureBox1.Image =      this.listView1.LargeImageList.Images[this.listView1.SelectedIndices[i]];
                    }
                this.pictureBox1.Show();
      

  3.   

    pictureBox1里显示的图片不要从imagelist1或listView1读取,你可以另外添加图片资源或者直接从文件读取。因为,imagelist一般是用于存放图标列表的,只能添加256*256以内的图形文件,更大的图片就不能用imagelist了。
      

  4.   

    附上我的关键代码,请高手帮助啊~!  
      this.imageList1.Images.Add(img.GetThumbnailImage(256, 256, null, IntPtr.Zero));  this.listView1.Clear();
      this.listView1.LargeImageList= this.imageList1;   
        
      for (int i = 0; i <this.imageList1.Images.Count; i++)
      {
      ListViewItem lvi = new ListViewItem();
      lvi.ImageIndex = i;
      listView1.Items.Add(lvi);
      }  点击listView1显示在pictureBox1中的关键代码:  for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      this.pictureBox1.Image = this.listView1.LargeImageList.Images[this.listView1.SelectedIndices[i]];
      }
      this.pictureBox1.Show();
      

  5.   

    用Image[]存大图片this.imageList1.Images.Add(img.GetThumbnailImage(256, 256, null, IntPtr.Zero));
    这个在listView1显示pictureBox根据listView1点击的索引去image[]里面取大图显示
      

  6.   

    Image[] 是Image的集合
    Image[] Imgs=new Image[图片数量int];
    你把大图片都保存在这个里面
    Image[0]代表第一张大图
    Image[1]代表第二张
    可直接用。就是变量
    for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      this.pictureBox1.Image = Imgs[i];
      }
      

  7.   

    哥们,你太牛逼了,果然显示的正常的了。现在的问题就是无论点击哪一张图片,在pictureBox显示的都是最
    后一张~
      

  8.   

    点击listView1的时候  额。你判断选择的是哪张图片对应的索引是几for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      this.pictureBox1.Image = Imgs[i];
      }
    这个肯定是错的
    for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      //判断被选中的有哪些。对应的image[]里的哪几张
      }
      
      

  9.   

    for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      this.pictureBox1.Image = Imgs[this.listView1.SelectedIndices[i]];
      }可以试试这个
      

  10.   

    Imgs[i];
    这个i使用点击的索引。for循环肯定是遍历到最后一张显示了呵呵
      

  11.   

    恩 谢谢啊,那个问题已经解决了。我用的是list,这样就不用那么麻烦了。现在的问题是:当删除listView里面的图片的时候,出问题,求一段删除listView中图片的代码,谢谢啦
      

  12.   

    Items.Remove试试
    记得移除的时候也要移除Image[]中对应的大图
      

  13.   

    private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
                {
                    listView1.Items[this.listView1.SelectedIndices[i]].Remove();
                }
            }
      

  14.   

    我是这样写的,可是删除的时候还是有问题 ,假如说有四张图片,我删掉第二张,然后原来的第三、第四张(删除第二张后变成第二、第三张,这是废话 呵呵)就变成一样的图片了;
     for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      listView1.Items[this.listView1.SelectedIndices[i]].Remove();
      imageList1.Images.removeAt(i);
      imgs.removeAtI(i);
      }
      

  15.   

    我是这样写的,可是删除的时候还是有问题 ,假如说有四张图片,我删掉第二张,然后原来的第三、第四张(删除第二张后变成第二、第三张,这是废话 呵呵)就变成一样的图片了;
     for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
      {
      listView1.Items[this.listView1.SelectedIndices[i]].Remove();
      imageList1.Images.removeAt(i);
      imgs.removeAt(i);
      }
      

  16.   

    后来我又写了一种,但是删除后,再点拍照按钮生成图片,原来删除过的图片又有了,我也知道是没完全清理点,可不知道怎么写,我的第二种代码写法:
    foreach(listViewItem item in listView1.SelectedItems)
    {
        this.listView1.Items.Remove(item);
    }