如何在不遵守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