winform绑定多张图片
开发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绑定多张图片的更多相关文章
- WinForm 绑定到嵌套对象上的属性
WinFrom 绑定到嵌套对象上的属性 关键字: Windows Forms, DataBindings, Nested Class, 嵌套类 在 WinForm 中很早就已经支持数据绑定, 使用数据 ...
- winform——绑定DataGridView
==========================================================================================重点需要掌握==Au ...
- Winform绑定数据源的几种方式?
第一种:DataSet ds=new DataSet (); this.dataGridView1.DataSource=ds.Table[0]; 第二种:DataTable dt=new DataT ...
- Winform绑定图片的三种方式
1.绝对路径: this.pictureBox2.Image=Image.FromFile("D:\\001.jpg"); 2.相对路径: Application.StartupP ...
- [Winform]DataGridView列自适应宽度
引言 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的. 方法 ...
- BindIPEndPointDelegate
开发人员经常会碰到老板或上头安排的项目或需求,是自己完全陌生的领域,这个时候就会非常头痛,搜索引擎能解决大部分这些方面的问题,而有时因为自身问题或干脆找不到解决方案而非常抓狂......虽然干开发有1 ...
- Farseer.net轻量级开源框架 中级篇:数据绑定
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: DbFactory数据工厂 下一篇:Farseer.net轻量级开源框架 中级篇: ...
- winform快速开发平台 -> 快速绑定ComboBox数据控件
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同 ...
随机推荐
- WP8里dll类库(SDK)实现多语言多主题
近日在做一个sdk项目,因为要实现多语言切换,单独类库多语言这方面的实现不是很多,故整理如下. 1.添加AppResource.resx(英文)和AppResource-zh-CN.resx 假设我们 ...
- [.net]线程基础
关于线程的诞生 早期的16位Windows只有一个执行线程,在执行各种程序时,如果这个线程运行出现了问题,就会“冻结”整个系统,使得系统处于未响应状态.这是一件多么尴尬的事儿,无论是用户还是微软自己, ...
- Struts2乱码问题的解决办法
乱码问题的起因在于数据在web系统的各个层中间传递的时候编码不同,比如页面使用GB18030而中间层使用UTF-8.由于struts2默认使用的就是UTF-8编码,所以在页面如果使用的是其他的编码格式 ...
- web请求的状态码
摘录于 https://www.cnblogs.com/lovychen/p/6256343.html 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行 ...
- Flask系列03--Flask的路由 app.route中的参数, 动态参数路由
Flask–路由 添加路由的两种方式 第一种 @app.route("/my_de") def detail() 第二种(了解即可) app.add_url_rule(" ...
- Java基础学习篇---------多线程
一.编写两种多线程的方法 (1).Thread(它是继承Runnable的子类) class MyThread extends Thread{ private int ticket = 5; @Ove ...
- list页面-按照choice筛选丶传condition过滤筛选项丶筛选与显示同步
1.list页面:筛选功能优化,显示choices,传condition过滤筛选项 list_filter = [ # sites.FilterOption("name", ...
- activemq消息生产者与消息消费者简单例子
消息生产者HelloQueueProducer.java package activemq.test; import javax.jms.Connection;import javax.jms.Con ...
- 本地数据库导入线上服务器的mongodb中
更改默认端口 sudo vi /etc/mongod.conf 进入conf文件,修改port值为19999保存并退出. 重启mongodb sudo service mongod restart 进 ...
- yii2之前端资源引入
PS:因新项目后端使用yii2框架,不在使用纯html模板的方式搭建页面(前后端不分离模式)使用yii2的内置boostart封装模板,遂研究了一番yii2 通过yii2官方下载的基础文件结构 其中 ...