如何在不遵守TableLayoutPanel规则的情况下在特定位置(以像素为单位)添加新元素?

时间:2016-08-25 07:21:20

标签: c# winforms visual-studio tablelayoutpanel

我已将TableLayoutPanel设置为布局以组织输入。这是一个好主意,直​​到我意识到我必须添加不应该在表格中的特定单元格中的新元素(它们必须跨越表格单元格,但单元格必须保持不变)

1 个答案:

答案 0 :(得分:2)

您需要为控件设置开始单元格

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);

enter image description here

但请注意,跨区域的行为类似于单元格:它只能包含一个控件,因此 <{strong> <{strong> >跨越范围!如果您需要更多控件相同范围,则需要在Control或其他Panel嵌套它们!