TableLayoutPanel只显示最后一行—C#
本文关键字:一行 显示 最后 TableLayoutPanel | 更新日期: 2023-09-27 18:00:12
我有一个TableLayoutPanel,它有10行2列。
我的问题是,当我在第一列中添加标签,在另一列中添加按钮时,一切都很好。但是,当我在下一行添加另一个标签和按钮时,前几行是空的。我的程序似乎只显示到最后添加的行。
代码:
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);
}