我有一个有 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);
天啊!
最佳答案
您必须为面板中的每个单元格创建一个新控件。
目前,您的代码正在将控件移动到最后一列和最后一行。
像这样的东西:
for (int i = 0; i < numRows; ++i) {
Button btnProject = new Button();
btnProject.Text = "Fill In";
tlpProject.Controls.Add(btnProject, 1, i);
}
任何事件处理程序也必须在这里添加,在处理程序端,您必须检查对象的“发送者”以查看用户按下了哪个按钮。