繁体   English   中英

TableLayoutPanel只显示最后一行 - C#

[英]TableLayoutPanel only shows last row - C#

我有一个有10行2列的TableLayoutPanel。

我的问题是,当我在第一列中添加标签而在另一列中添加一个按钮时,一切都很好。 但是当我在例如下一行添加另一个标签和按钮时,前面的行是空的。 似乎我的程序只显示最后添加的行。

码:

Label lblProjectName = new Label();
lblProjectName.Text = "test";
lblProjectName.Anchor = AnchorStyles.Left;
Button btnProject = new Button();
btnProject.Text = "Fill In";

tlpProject.Controls.Add(lblProjectName, 0, 0);
tlpProject.Controls.Add(btnProject, 1, 0);

tlpProject.Controls.Add(lblProjectName, 0, 1);
tlpProject.Controls.Add(btnProject, 1, 1);

TNX!

您必须为面板中的每个单元格创建一个控件。

目前,您的代码正在控件移动到最后一列和最后一行。

像这样的东西:

for (int i = 0; i < numRows; ++i) {
  Button btnProject = new Button();
  btnProject.Text = "Fill In";
  tlpProject.Controls.Add(btnProject, 1, i);
}

此处也必须添加任何事件处理程序,在处理程序端,您必须检查对象的“发送者”以查看用户按下的按钮。

当你将它们添加到不同的单元格(因此不同的控件)时,看起来Label和Button只能是单个控件的子控件。 如果您需要所有填充标签和按钮的单元格,则每列需要10个标签和10个按钮。 看看代码:

for(int i=0;i<10;i++){
var lblProjectName = new Lable();
lblProjectName.Text = "test";
lblProjectName.Anchor = AnchorStyles.Left;
var btnProject = new Button();
btnProject.Text = "Fill In";

tlpProject.Controls.Add(lblProjectName, 0, i);
tlpProject.Controls.Add(btnProject, 1, i);
}

暂无
暂无

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

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