我有一个有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!
答案 0 :(得分:1)
您必须为面板中的每个单元格创建 new 控件。
目前,您的代码将控件移动到最后一列和最后一行。
这样的事情:
for (int i = 0; i < numRows; ++i) {
Button btnProject = new Button();
btnProject.Text = "Fill In";
tlpProject.Controls.Add(btnProject, 1, i);
}
此处也必须添加任何事件处理程序,在处理程序结束时,您必须检查对象的“发送者”以查看用户按下的按钮。
答案 1 :(得分:0)
当你将它们添加到不同的单元格(因此是不同的控件)时,看起来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);
}