如何在不遵守TableLayoutPanel规则的情况下在特定位置(以像素为单位)添加新元素?
我已将TableLayoutPanel设置为布局以组织输入。 这是一个好主意,直到我意识到我必须添加不应该在表格中的特定单元格中的新元素(它们必须跨越表格单元格,但单元格必须保持不变)
您需要为控件设置起始单元格
Panel pan = new Panel() {BackColor = Color.Red, Parent = tableLayoutPanel1 };
要么像这样:
tableLayoutPanel1.SetCellPosition(pan, new TableLayoutPanelCellPosition(1, 2));
或者像这样:
tableLayoutPanel1.SetColumn(pan, 1); tableLayoutPanel1.SetRow(pan, 2);
然后您可以像这样设置该位置的跨度 :
tableLayoutPanel1.SetColumnSpan(pan, 3); tableLayoutPanel1.SetRowSpan(pan, 2);
最后,您可以通过设置控件的Margin
微调像素级别的位置 :
pan.Margin = new Padding(55, 5, 0, 0);
但请注意,跨越范围就像一个单元格:它只能包含一个控件,因此您不能在跨越范围内放置任何其他 Control
! 如果您需要在相同范围内使用 更多控件,则需要将它们全部嵌套在Panel
或其他Container
!