C# Winform 如何做图片批量显示

gdoucwx 2012-03-20 09:25:41
CS结构,图片保存在数据库,是image类型的。如果采用PictureBox显示的,则只能显示一张图片。现在的要求是这样的,图片要批量显示出来,以多行多列的形式显示。如果动态构建多个PictureBox,同时要显示一千张图片的话,则消耗的内存比较大,这样还有一个问题,就是滚动条的问题。所以这样方式就不是很好。另一种方法使用ListView来显示,则只能把图片显示成图标,这样也行。大家有什么解决办法
...全文
1328 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
crackdung 2012-03-21
  • 打赏
  • 举报
回复
http://www.atalasoft.com


http://ufo-crackerx.blog.163.com/
gdoucwx 2012-03-21
  • 打赏
  • 举报
回复
顶,在winform中,有什么办法做到像webform那样的显示多行多列的图像出来呢?
gdoucwx 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chinajiyong 的回复:]
引用 6 楼 gdoucwx 的回复:

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

窗体也就那么大,你用滚动条或者滑动的效果也不好,
[/Quote]
确实是,这样批量全部显示确实对系统的运行也不是那么理想。现在换一种说法,打个比方,要批量显示12多张图片,显示的格式是3行4列的,不用去拖12个PictureBox出来,用什么控件或办法能做出这个效果呢?
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gdoucwx 的回复:]

这里的批量显示图片主要的目的是图片之间的对比,就是想一目了然的看到两张图片之间的区别。如果使用点击ListView的图标就在PictureBox显示大图,这样就达不到图片对比的效果,所以图片还是要一下子批量的全部显示出来。
[/Quote]
窗体也就那么大,你用滚动条或者滑动的效果也不好,
gdoucwx 2012-03-20
  • 打赏
  • 举报
回复
这里的批量显示图片主要的目的是图片之间的对比,就是想一目了然的看到两张图片之间的区别。如果使用点击ListView的图标就在PictureBox显示大图,这样就达不到图片对比的效果,所以图片还是要一下子批量的全部显示出来。
SomethingJack 2012-03-20
  • 打赏
  • 举报
回复
我隐约记得 好想有一个控件的什么布局可以解决批量显示图标的问题 忘记那个控件了- -!
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
简单代码


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];
}
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chinajiyong 的回复:]

引用楼主 gdoucwx 的回复:
CS结构,图片保存在数据库,是image类型的。如果采用PictureBox显示的,则只能显示一张图片。现在的要求是这样的,图片要批量显示出来,以多行多列的形式显示。如果动态构建多个PictureBox,同时要显示一千张图片的话,则消耗的内存比较大,这样还有一个问题,就是滚动条的问题。所以这样方式就不是很好。另一种方法使用ListView来显示,则只能把图片……
[/Quote]
效果这种
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 gdoucwx 的回复:]
CS结构,图片保存在数据库,是image类型的。如果采用PictureBox显示的,则只能显示一张图片。现在的要求是这样的,图片要批量显示出来,以多行多列的形式显示。如果动态构建多个PictureBox,同时要显示一千张图片的话,则消耗的内存比较大,这样还有一个问题,就是滚动条的问题。所以这样方式就不是很好。另一种方法使用ListView来显示,则只能把图片显示成图标,这样也行。大家有什么解决办法……
[/Quote]
可不可以listview显示缩略图,当用户点击缩略图用picture显示大图呢?
dabingsou 2012-03-20
  • 打赏
  • 举报
回复
一千张图一下子也看不了,可以先显示成图标,人为选择后用PictureBox大图显示

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧