那个btn的按钮的高度已经设好了 我只用了你的 this.btnN.Top = N * panel1.Height / 8
加载的动态算一遍就可以了,先定好button1.location = new point(x,y); 后面的就button2.location = new point(x,button1.height+y); ...... 有几个就计算几个,要是不要那么紧密,可以button1.height+y+间距,这样不会那么难看的
button3.location = new point(x,button1.height + button2.height +y);
btn2的Anchor设为Left和Right
btn3的设为Bottom
button1.Dock = DockStyle.Top;
button2.Dock = DockStyle.Bottom;
button3.Dock = DockStyle.Bottom;
button4.Dock = DockStyle.Bottom;
button5.Dock = DockStyle.Bottom;只留一个top就行
Button[] btns = new Button[6];
for (int i = 0; i < btns.Length; i++)
{
btns[i] = new Button();
btns[i].Text = "Button" + i;
btns[i].Location = new Point((panel1.Width - btns[i].Width) / 2, i * (btns[i].Height + (panel1.Height - btns[i].Height * 5) / 4));
panel1.Controls.Add(btns[i]);
}
button3从2/3处开始,高度是1/3应该没错啊。
是最后一个btn离panel最低端有一定的距离,没有在panel的最底端
btn2.Top = panel.Height / 3; btn2.Left = 0; btn2.Width = panel.Width; btn2.Height = panel.Height / 3;
btn3.Top = 2 * panel.Height / 3; btn3.Left = 0; btn3.Width = panel.Width; btn3.Height = panel.Height - 2 * panel.Height / 3;
this.btn2.Top = panel1.Height / 8; this.btn2.Left = 0;
this.btn3.Top = 2 * panel1.Height / 8; this.btn3.Left = 0;
this.btn4.Top = 3 * panel1.Height / 8; this.btn4.Left = 0;
this.btn5.Top = 4 * panel1.Height / 8; this.btn5.Left = 0;
this.btn6.Top = 5 * panel1.Height / 8; this.btn6.Left = 0;
this.btn7.Top = 6 * panel1.Height / 8; this.btn7.Left = 0;
this.btn8.Top = 7 * panel1.Height / 8; this.btn8.Left = 0;就是btn8这个按钮的底端没有与panel的底端重合 我希望btn8按钮与panel的底部重合在一起的
修改成
this.btn8.Top = 7 * panel1.Height / 8; this.btn8.Left = 0; this.btn8.Height = panel.Height - 7 * panel1.Height / 8;原因是每次除出来的有些余数,累积在一起就会使得最后一个稍微不准。你可以首先把Panel的Heght属性设置为8的整倍数,比如56、64、72、80……
Panel的高度是Form的高度 不好调整呀能不能这样做 btn1与panel的上边贴着 btn8与panel的下边贴着 再来处理其他btn的Top?
this.btnN.Top = N * panel1.Height / 8
后面的就button2.location = new point(x,button1.height+y);
......
有几个就计算几个,要是不要那么紧密,可以button1.height+y+间距,这样不会那么难看的
btn的宽度 高度都是固定的
btn1与panel上端重合 btn8与panel下端重合
我再试一试你的方法