开发winform程序的时候经常设计到要显示多张图片的问题,其解决思路一般是先遍历文件夹中的所有图片,然后再把这些图片添加到ImageList控件中,最后再绑定显示出来。这里我们介绍两种绑定的方法:

(一)动态生成PictureBox绑定图片

(1)先在界面添加ImageList和PictureBox控件

(2)遍历文件夹中的所有图片,并添加到ImageList中

(3)根据图片的数量来动态生成PictureBox,并依次绑定显示

 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string[] arrFileNames = System.IO.Directory.GetFiles(@"E:\五月天\Q版五月天");
Image img = null;
foreach (string name in arrFileNames)
{
img = Image.FromFile(name);
imageList1.Images.Add(img);
} PictureBox pb;
for (int i = ; i < arrFileNames.Length; i++)
{
pb = new PictureBox();
pb.Width = ;
pb.Height = ;
pb.Image = imageList1.Images[i];
pb.Location = new System.Drawing.Point(, i * );
panel1.Controls.Add(pb);
}
}
}

(二)ListView绑定多张图片

其大概思路同上,不啰嗦了,直接附上代码

     public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
try
{
List<string> tifNames = new List<string>();
string path = @"E:\五月天\Q版五月天";
DirectoryInfo TheFolder = new DirectoryInfo(path);//文件路径
imgListPhoto.Images.Clear();
for (int i = ; i < TheFolder.GetFiles().Length; i++) //遍历文件夹
{
if (TheFolder.GetFiles()[i].Length > && TheFolder.GetFiles()[i].Extension == ".jpg") //或者jpg,png 文件大小要大于0且是图片文件
{
Image image = Image.FromFile(TheFolder.GetFiles()[i].DirectoryName + "\\" + TheFolder.GetFiles()[i].Name); //获取文件
tifNames.Add(TheFolder.GetFiles()[i].Name);//添加文件名
imgListPhoto.Images.Add(image);//添加图片
}
}
//初始化设置
this.listView1.View = View.LargeIcon;
this.listView1.LargeImageList = this.imgListPhoto; //开始绑定
this.listView1.BeginUpdate();
this.listView1.Items.Clear();
ListViewItem items = new ListViewItem();
items.SubItems.Clear();
for (int i = ; i < tifNames.Count; i++)
{
ListViewItem lvi = new ListViewItem();
lvi.ImageIndex = i;
lvi.Text = tifNames[i];
this.listView1.Items.Add(lvi);
Thread.Sleep();
}
this.listView1.EndUpdate();
}
catch (Exception ex)
{
//MessageBox.Show("Error");
throw new Exception(ex.Message);
}
}
}

个人建议还是用ListView,而动态生成控件则可作为一种思路,在其他很多方面都可以用到的

winform绑定多张图片的更多相关文章

  1. WinForm 绑定到嵌套对象上的属性

    WinFrom 绑定到嵌套对象上的属性 关键字: Windows Forms, DataBindings, Nested Class, 嵌套类 在 WinForm 中很早就已经支持数据绑定, 使用数据 ...

  2. winform——绑定DataGridView

    ==========================================================================================重点需要掌握==Au ...

  3. Winform绑定数据源的几种方式?

    第一种:DataSet ds=new DataSet (); this.dataGridView1.DataSource=ds.Table[0]; 第二种:DataTable dt=new DataT ...

  4. Winform绑定图片的三种方式

    1.绝对路径: this.pictureBox2.Image=Image.FromFile("D:\\001.jpg"); 2.相对路径: Application.StartupP ...

  5. [Winform]DataGridView列自适应宽度

    引言 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的. 方法 ...

  6. BindIPEndPointDelegate

    开发人员经常会碰到老板或上头安排的项目或需求,是自己完全陌生的领域,这个时候就会非常头痛,搜索引擎能解决大部分这些方面的问题,而有时因为自身问题或干脆找不到解决方案而非常抓狂......虽然干开发有1 ...

  7. Farseer.net轻量级开源框架 中级篇:数据绑定

    导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: DbFactory数据工厂 下一篇:Farseer.net轻量级开源框架 中级篇: ...

  8. winform快速开发平台 -> 快速绑定ComboBox数据控件

    通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...

  9. .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)

    说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同 ...

随机推荐

  1. 枚举类型内部函数 enumerate

    enumerate()说明enumerate()是python的内置函数enumerate在字典上是枚举.列举的意思对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumera ...

  2. C#后端接收form-data,创建实体类

    public class Para_list //实体类 { public long ParemeterID { get; set; } public string Name { get; set; ...

  3. Java并发编程之final域的内存语义

    一.final域的重排序规则 对于final域,编译器和处理器要遵循两个重拍序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序 ...

  4. [AIR] AIR程序调用本地默认应用程序打开本地文件

    摘要:      File类提供了一个方法openWithDefaultApplication可以用本地默认应用程序打开指定路径下的文件. 当我用下面语句的时候,可以成功打开桌面文件夹下面的文件: v ...

  5. 如何让IE 低版本下支持 css3属性

    依赖源  该文件为  ie-css3.htc    (特别提示.htc为二进制文件,只会在ie中识别,让IE浏览器支持CSS3的一些属性) 以下为依赖文件源码 通过源码我们可以看到 该文件在一定程度上 ...

  6. Windows10下搭建TensorFlow环境

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6753695.html 这篇文章介绍了一下在Windows上安装TensorFlow的步骤,主要是翻译了一下官方的 ...

  7. python strip()函数的用法

    函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)         删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)        删除s字符串中 ...

  8. Linq基础知识小记三

    1.子查询 Linq中的子查询思想和Sql中的子查询其实差不多, 对于方法语法,一个子查询包含在另一个子查询的Lambda表达式中,代码如下: string[] names = { "Jam ...

  9. CS231n学习笔记-图像分类笔记(下篇)

    原文地址:智能单元 K-Nearest Neighbor分类器 大家可能注意到了,为什么只用最相似的一张图片的标签来作为测试图像的标签呢?这不是很奇怪吗!是的,使用K-Nearest Neighbor ...

  10. 关于 PHP 开放 enable_dl 函数利用 图片Disable_functions

    三篇引文地址: 利用PHP扩展模块突破Disable_functions执行命令 如何编写PHP扩展 php dl函数(详细解释)