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

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

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

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

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

 1 public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6             string[] arrFileNames = System.IO.Directory.GetFiles(@"E:\五月天\Q版五月天");
 7             Image img = null;
 8             foreach (string name in arrFileNames)
 9             {
10                 img = Image.FromFile(name);
11                 imageList1.Images.Add(img);
12             }
13
14             PictureBox pb;
15             for (int i = 0; i < arrFileNames.Length; i++)
16             {
17                 pb = new PictureBox();
18                 pb.Width = 130;
19                 pb.Height = 170;
20                 pb.Image = imageList1.Images[i];
21                 pb.Location = new System.Drawing.Point(0, i * 160);
22                 panel1.Controls.Add(pb);
23             }
24         }
25     }

View Code

(二)ListView绑定多张图片

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

 1     public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6             try
 7             {
 8                 List<string> tifNames = new List<string>();
 9                 string path = @"E:\五月天\Q版五月天";
10                 DirectoryInfo TheFolder = new DirectoryInfo(path);//文件路径
11                 imgListPhoto.Images.Clear();
12                 for (int i = 0; i < TheFolder.GetFiles().Length; i++)   //遍历文件夹
13                 {
14                     if (TheFolder.GetFiles()[i].Length > 0 && TheFolder.GetFiles()[i].Extension == ".jpg")                //或者jpg,png 文件大小要大于0且是图片文件
15                     {
16                         Image image = Image.FromFile(TheFolder.GetFiles()[i].DirectoryName + "\\" + TheFolder.GetFiles()[i].Name);                    //获取文件
17                         tifNames.Add(TheFolder.GetFiles()[i].Name);//添加文件名
18                         imgListPhoto.Images.Add(image);//添加图片
19                     }
20                 }
21                 //初始化设置
22                 this.listView1.View = View.LargeIcon;
23                 this.listView1.LargeImageList = this.imgListPhoto;
24
25                 //开始绑定
26                 this.listView1.BeginUpdate();
27                 this.listView1.Items.Clear();
28                 ListViewItem items = new ListViewItem();
29                 items.SubItems.Clear();
30                 for (int i = 0; i < tifNames.Count; i++)
31                 {
32                     ListViewItem lvi = new ListViewItem();
33                     lvi.ImageIndex = i;
34                     lvi.Text = tifNames[i];
35                     this.listView1.Items.Add(lvi);
36                     Thread.Sleep(200);
37                 }
38                 this.listView1.EndUpdate();
39             }
40             catch (Exception ex)
41             {
42                 //MessageBox.Show("Error");
43                 throw new Exception(ex.Message);
44             }
45         }
46     }

View Code

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

转载于:https://www.cnblogs.com/weizhengLoveMayDay/p/3330894.html

winform绑定多张图片相关推荐

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

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

  2. js阻止ajax继续请求,js 拦截全局 ajax 请求

    Vimium使用快捷键总结 chrome 快捷键: ctrl+w 关闭当前标签  ctrl+t 新建标签 gg行首 shift+g 行尾 Vimium使用快捷键总结 j, : Scroll down ...

  3. db2主键自增和oracle,oracle_浅析常用数据库的自增字段创建方法汇总,DB2复制代码 代码如下:CREATEnbsp - phpStudy...

    浅析常用数据库的自增字段创建方法汇总 DB2 CREATE   TABLE  T1 ( id  INTEGER   NOT   NULL  GENERATED ALWAYS  AS   IDENTIT ...

  4. 腾讯微搭低代码(预约)总体介绍——工作室专用(客户端)

    目录 1.项目背景 2.需求分析 3.数据源设计 4.小程序的创建 4.1 首页的创建 4.2工作室页面的创建 4.3我的页面的创建 4.4各项功能的实现 4.4.1轮播图片的上传 4.4.2点击组件 ...

  5. unity3d制作RPG游戏系列(4)——UI界面

    个人博客文章链接:http://www.huqj.top/article?id=161 游戏中除了3d场景以外,UI界面也是很重要的一部分,例如主角的头像.血条.背包.按钮等. 下面是myrpg中的简 ...

  6. combox数据过滤 wpf_WPF combox数据绑定的问题

    WPF中的Combox绑定表面看起来似乎比winform重的winform绑定更复杂 但是,不容忽视的是wpf中的combox的数据对象绑定绑定的是对象,比如用Messagebox.show(comb ...

  7. WinForm下ComboBox获取绑定对象集的SelectedValue补充

    在上文<WinForm下ComboBox设定SelectedValue总结>中,我列举了出现不能正常获取SlectedValue的一些方法.原文写得比较乱,引起读者的理解分歧,在此表示歉意 ...

  8. .Net平台Winform两个ComboBox控件绑定同一个数据源

    今天WINFROM编程遇到这么一个问题:是有关WINFORM中两个comboBox控件绑定同一个数据源的问题,在窗体的界面上有两个comboBox,我在Form1_Load中对他们做了数据绑定(具体代 ...

  9. WinForm中Combobox绑定值问题

    好久没写过WinForm程序了,昨天闲来无事就试着写个玩玩.界面中有两个combobox控件,第二个combobox控件中绑定值是根据第一个combobox值而定的.当时自己写的代码是: 1 priv ...

最新文章

  1. 【Junit】BeforeClass、Before、After、AfterClass
  2. activemq高级客户端选项
  3. linux gcc 与 glibc 的关系 glibc版本查看
  4. [Spring MVC] - @ModelAttribute使用
  5. 【Linux】3.dpkg、apt安装卸载软件
  6. 互联网账户系统的具体实现
  7. 案例|自建or现成工具?小型创业团队敏捷研发探索
  8. 大工13秋 c/c++语言程序设计 在线作业3,大工19秋《JavaScript基础教程与应用》在线作业3【满分答案】...
  9. 事务日志的物理和逻辑构架
  10. python实现决策树ID3算法
  11. centos6配置mysql5.7_CentOS 6.7 下 MYSQL 5.7 的安装与配置
  12. php如何获取当前的cookie,怎么获取cookie的值
  13. C语言图形编程|设置位置
  14. requests 使用 socks5 协议 的另外一种方式
  15. php ucfirst,Arale源码解析(3)——Base模块和Aspect模块
  16. python与图像处理书籍_数字图像处理与Python实现
  17. android studio无法连接小米手机问题解决
  18. Docker安装mysql5.7
  19. 很强大,并且易于使用,更重要的是免费的一个分区工具:分区助手
  20. saber软件安装常见问题

热门文章

  1. 五分钟带你摸透 Vue组件及组件通讯
  2. es6 --- 内置的Symbol值
  3. 开发者应警惕的七种糟糕职业规划错误
  4. SANS研究所:7大最危险的攻击技术介绍
  5. 拼字符串成为时间,和两个计算时间点的中间值
  6. UVA 1156 - Pixel Shuffle(模拟+置换)
  7. RedHat 脚本搭建dns服务!
  8. 快速手动替换 Windows 7 系统字体
  9. 电视百科常识 九大视频接口全接触
  10. HALCON示例程序dem_trees.hdev提取树