你不需要这样计算位置,我们应该用一些布局控件来解决这个问题。只需添加2,第一个停靠在表单的左侧,第二个停靠在表单的右侧。现在
panel1.Dock = DockStyle.Left;
panel2.Dock = DockStyle.Right;
panel1.Width = panel2.Width = 100;
,你只需要4个pictureboxes到panel1
和4个pictureboxes添加到panel2
,也使用Dock
属性是这样的:
for (int i = 0; i < pbs.Length; i++) {
pbs[i].Size = new Size(100, 100);
pbs.Margin = new Padding(0, 0, 0, 60);
pbs.Dock = DockStyle.Top;
Panel p = i < 4 ? panel1 : panel2;
p.Controls.Add(pbs[i]);
pbs.BringToFront();
}
您还可以使用FlowLayoutPanel
而不是Panel
,它将停靠为您自动控制。
flowLayoutPanel1.Dock = DockStyle.Left;
flowLayoutPanel2.Dock = DockStyle.Right;
flowLayoutPanel1.Width = flowLayoutPanel2.Width = 100;
flowLayoutPanel1.FlowDirection = flowLayoutPanel2.FlowDirection = FlowDirection.TopDown;
for (int i = 0; i < pbs.Length; i++) {
pbs[i].Size = new Size(100, 100);
pbs.Margin = new Padding(0, 0, 0, 60);
Control p = i < 4 ? flowLayoutPanel1 : flowLayoutPanel2;
p.Controls.Add(pbs[i]);
}
使用加法?只需将差距添加到以前的PictureBox的位置。 – SLaks