新人学C#,现在想实现下面的功能: 本人想在一个空白的FORM里面自动NEW出相应个数大小相等的pictureBox 要NEW出的个数从另外的一个FORM中的文本框中读取。 现在遇到的问题是NEW出的pictureBox任何根据当时FORM的大小来调整自身的大小并排列好??特别是NEW出的pictureBox的定位问题,不知道NEW出来后如阿能让它们自动排列好? 希望高手能给出实现代码 谢谢了咯
调试欢乐多
XPButton tmpButton = new XPButton();
//设置属性tmpButton.Height = 30;
tmpButton.Width = this.Width;
tmpButton.Text = tmpMenuItem.MenuItemCaption;
tmpButton.Visible = false;//添加事件处理过程
tmpButton.Click += new System.EventHandler(this.BtnItem_Click);
//最后添加到窗体
this.Controls.Add (tmpButton);上面添加的是一个按钮.
你可以改成PictureBox.
再加一个循环,根据传来的变量,循环添加就可以了
和 图片的个数
来确定 picturebox的高度和宽度
如果想要在添加以后,窗体大上改变时,随着窗体大小调整.
就在窗体的Resize事件中处理.
用this.controls("")找到这一组PictureBox,再进行定位,调整大小.
当然还有一个简单的方法就是放一个flowLayoutPanel控件
就可以自动排列了
this.flowLayoutPanel1.Controls.Clear();
int picN = Convert.ToInt32(this.textBox1.Text.Trim());
int fS = this.flowLayoutPanel1.Width * this.flowLayoutPanel1.Height;
int picS =fS/picN;
int picW = Convert.ToInt32(System.Math.Sqrt(picS))-20;//这里控件不准确
for (int i = 0; i < picN; i++)
{
PictureBox P1 = new PictureBox();
P1.Image = Image.FromFile("1.jpg");
P1.Width = picW;
P1.Height = picW;
this.flowLayoutPanel1.Controls.Add(P1);
}