1. 程式人生 > >動態生成PictureBox控件,涉及:PictureBox控件和flowLayoutPanel面板

動態生成PictureBox控件,涉及:PictureBox控件和flowLayoutPanel面板

獲取 eve sender ane combobox isp 示例 大小 得到

一、概述

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面板