有的时候,需要用到很多的按钮或者是其他的控件,总不能一个一个去拖,正好项目中用到就想了一下,怎么办,刚开始是
for (int i = 0; i < 4; i++)
{
Button b= new Button();
b.Name = "btn" + i.ToString();
b.Width = 100;
b.Height = 100;
b.Location = new System.Drawing.Point(b.Location.X +100, b.Location.Y +100);
this.Controls.Add(b);
}
为什么只有一个么,,因为你所添加按钮是加上去了,但是被覆盖了,因为你每次都是new一个,默认的位置都是同一地点的,所以会覆盖的,所以就得改变位置,首先想到是的数组,但是我没用到,感觉麻烦了,动态的改编位置,必须得有变量来改变,于是
b.Location = new System.Drawing.Point(b.Location.X +100, b.Location.Y +100);改为
b.Location = new System.Drawing.Point(b.Location.X +i*100, b.Location.Y +i*100);
出现的是对角线的4个按钮,我把按钮的所有的x y都换了,所以就成对角线了,所以要再加一个循环,最后的代码就是这样的
for (int i = 0; i < 4; i++)
{
for(int j=0;j<3;j++)
{
Button b= new Button();
b.Name = "btn" + i.ToString();
b.Width = 100;
b.Height = 100;
b.Location = new System.Drawing.Point(b.Location.X +i* 100, b.Location.Y +j*100);
this.Controls.Add(b);
}
}
但是有时候,需要这样的效果
for (int j = 0; j < 2; j++)
{
for (int i = 0; i < 4; i++) //列
{
if (this.Controls.Count < 6)
{
Button b = new Button();
b.Name = "btn" + i.ToString();
b.Width = 100;
b.Height = 100;
b.Location = new System.Drawing.Point(b.Location.X + i * 100, b.Location.Y + j * 100);
this.Controls.Add(b);
}
}
}
没什么技术含量,大神不要喷,只是记录下来,下次就可以直接用了,,