繁体   English   中英

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

[英]Insert Row in Middle of Table Layout panel C# Windows

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

我在表布局面板中有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);

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

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

像这样:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM