在表格布局面板C#Windows的中间插入行

时间:2017-12-13 15:57:28

标签: c#

我正在尝试在表格布局面板的中间添加一行。但是,我正在努力寻找一种方法来做到这一点。我试着跟随互联网上的一篇文章,但这似乎并没有起作用。你能帮我吗。

我在表格布局面板中有3列5行。每行包含标签,文本框和空白标签。

我正在尝试在已创建的表格布局面板中的第二行之后添加一行。

var AddOnControl = ConfirmationTable.Controls.Find("Discount", true).First();
int childIndex = 1+ ConfirmationTable.Controls.GetChildIndex(AddOnControl);


Label lbl = new Label();
lbl.Name = key;
lbl.Text = key;
lbl.Font = new Font("Calibri", 10F, System.Drawing.FontStyle.Regular);
lbl.Size = new Size(lbl.Size.Width + 70, lbl.Size.Height);

ConfirmationTable.Controls.Add(lbl);

TextBox txt = new TextBox();
txt.Multiline = true;
txt.TextChanged += txt_TextChanged;
txt.Name = "txtPrice" + key;
txt.Text = value;
txt.BorderStyle = BorderStyle.None;

ConfirmationTable.Controls.Add(txt);

lbl = new Label();
lbl.Name = "blank";
ConfirmationTable.Controls.Add(lbl);

ConfirmationTable.Controls.SetChildIndex(lbl, childIndex);
ConfirmationTable.Controls.SetChildIndex(txt, childIndex + 1);
ConfirmationTable.Controls.SetChildIndex(txt, childIndex + 2);

但是上面的代码总是在表格的底部添加一行。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Controls.Add方法有一个重载,它接受两个整数作为列/行位置的索引。

像这样:

tableLayoutPanel1.Controls.Add(lb3, 0, 1);

我相信这足以以简单的方式解决您的问题。