CS结构,图片保存在数据库,是image类型的。如果采用PictureBox显示的,则只能显示一张图片。现在的要求是这样的,图片要批量显示出来,以多行多列的形式显示。如果动态构建多个PictureBox,同时要显示一千张图片的话,则消耗的内存比较大,这样还有一个问题,就是滚动条的问题。所以这样方式就不是很好。另一种方法使用ListView来显示,则只能把图片显示成图标,这样也行。大家有什么解决办法

解决方案 »

  1.   

    一千张图一下子也看不了,可以先显示成图标,人为选择后用PictureBox大图显示
      

  2.   

    可不可以listview显示缩略图,当用户点击缩略图用picture显示大图呢?
      

  3.   

    简单代码
            private string[] files;
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                DialogResult dr = this.openFileDialog1.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    this.files = this.openFileDialog1.FileNames;
                    for(int i=0;i<files.Length;i++)
                    {
                        this.imageList1.Images.Add(Image.FromFile(this.files[i]));
                        this.listView1.Items.Add(this.files[i].Substring(this.files[i].LastIndexOf(@"\")+1), i);
                    }
                }
            }        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (this.listView1.SelectedItems.Count > 0)
                    this.pictureBox1.ImageLocation = this.files[this.listView1.SelectedItems[0].Index];
            }
      

  4.   

    这里的批量显示图片主要的目的是图片之间的对比,就是想一目了然的看到两张图片之间的区别。如果使用点击ListView的图标就在PictureBox显示大图,这样就达不到图片对比的效果,所以图片还是要一下子批量的全部显示出来。
      

  5.   

    确实是,这样批量全部显示确实对系统的运行也不是那么理想。现在换一种说法,打个比方,要批量显示12多张图片,显示的格式是3行4列的,不用去拖12个PictureBox出来,用什么控件或办法能做出这个效果呢?
      

  6.   

    顶,在winform中,有什么办法做到像webform那样的显示多行多列的图像出来呢?
      

  7.   

    http://www.atalasoft.com
    http://ufo-crackerx.blog.163.com/