码迷,mamicode.com
首页 > 其他好文 > 详细

动态生成PictureBox控件,涉及:PictureBox控件和flowLayoutPanel面板

时间:2017-08-26 20:40:49      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:指定   button   文件夹   fromfile   div   point   string   color   dispose   

一、概述

flowLayoutPanel面板是一系列控件的容器,有关详细的使用方法留待以后总结。

二、问题提出

问题提出:点击按钮,扫描指定文件夹并将其中的所有图片放在flowLayoutPanel面板内。换句话说,就是在flowLayoutPanel面板内动态生成N个PictureBox控件。

此外,还有一个要求,N是变化的,有时显示5个图片,有时显示20个图片。这就要求动态生成新的控件之前先销毁已经存在的控件。

三、销毁代码

销毁控件代码

box[v].Dispose();
box[v] = null;
GC.Collect();

四、示例代码

        private void button4_Click(object sender, EventArgs e)
        {
            if (N!=0)
            {
                for (int v = 0; v < N; v++)
                {
                    box[v].Dispose();
                    box[v] = null;
                    GC.Collect();
                }
            }

            N = int.Parse(comboBox_NUM.Text); //获取要展示的图片数量;
            box = new PictureBox[N];

            DirectoryInfo dir = new DirectoryInfo("c:\\pic");
            ArrayList JpgList = new ArrayList();//链表存放图片全名;
            foreach (FileInfo file in dir.GetFiles("*.jpg")) //得到所有图片全名存入list;
            {
                JpgList.Add(file.FullName);
            }
            int i = 0;
            foreach (string value in JpgList)
            {
                if (i < N)
                {
                    box[i] = new PictureBox();
                    box[i].Size = new System.Drawing.Size(105, 105);//图片框的大小;
                    box[i].Location = new System.Drawing.Point(0, 12 + i * 100);//图片排放位置;
                    box[i].Image = Image.FromFile(value);//图片地址;
                    flowLayoutPanel1.Controls.Add(box[i]); //flowLayoutPanel增加图片
                    i++;
                }
            }
        }

 

动态生成PictureBox控件,涉及:PictureBox控件和flowLayoutPanel面板

标签:指定   button   文件夹   fromfile   div   point   string   color   dispose   

原文地址:http://www.cnblogs.com/tinaluo/p/7436202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!