~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一、概述

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

二、问题提出

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

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

三、销毁PictureBox控件

销毁控件代码

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

四、示例代码

            N = int.Parse(comboBox_NUM.Text);
            //---------------------
            DirectoryInfo dir = new DirectoryInfo("c:\\pic");
            ArrayList JpgList = new ArrayList();
            foreach (FileInfo file in dir.GetFiles("*.jpg"))
            {
                JpgList.Add(file.FullName);
            }
            int num = JpgList.Count;
            //----------------------
            if(num!=0)//如果文件夹不为空;
            {
                if (box!=null) //如果有生成的控件,销毁控件;
                {
                    for (int v = 0; v < CreatedNum; v++)
                    {
                        box[v].Dispose();
                        box[v].Image = null;
                        GC.Collect();
                    }
                }
                if (N >= num) 
                    N = num;//如果选择显示的数量大于实际图片数量;

                CreatedNum = N;//实际动态生成的数量;
                box = new PictureBox[CreatedNum];

                int i = 0;
                foreach (string v 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, 15 + i * 100);//图片排放位置;
                        box[i].Image = Image.FromFile(v);//图片地址;
                                             
                        box[i].SizeMode = PictureBoxSizeMode.Zoom;
                        //box[i].BorderStyle = BorderStyle.FixedSingle;

                        flowLayoutPanel1.Controls.Add(box[i]); //flowLayoutPanel增加图片
                        i++;
                    }
                }

 

posted on 2017-08-26 19:39  LuoTian  阅读(303)  评论(0编辑  收藏  举报