我有一个应该通过 DataTable 的循环,并为每一行创建一个新的 GroupBox,将其文本设置为一列中的值,在该 GroupBox 中,我想在表中放置一个带有文本的标签,类似于另一列。这只是代码的一部分!
for (int i = 0; i < tab.Rows.Count; i++)
{
lblbox[i] = new GroupBox();
lblbox[i].Text = tab.Rows[i]["text"].ToString();
lblbox[i].Name = "box no " + i.ToString();
lblbox[i].Visible = true;
this.Controls.Add(lblbox[i]);
lblbox[i].Location = new Point(5, 55 * i);
lblbox[i].Height = 50;
lblbox[i].SendToBack();
importancelbl[i] = new Label();
importancelbl[i].Text = "Importance: " + tab.Rows[i]["importance"].ToString();
importancelbl[i].Name = "implbl" + i.ToString();
importancelbl[i].Visible = true;
lblbox[i].Controls.Add(importancelbl[i]);
importancelbl[i].BringToFront();
Point locP = new Point();
locP.X = lblbox[i].Location.X + 5;
locP.Y = lblbox[i].Location.Y + 15;
importancelbl[i].Location = locP;
}
当我运行代码时,它会正确创建三个(我的表中有三行)GroupBoxes 并创建所有标签,但只有第一个标签在其 Groupbox 中可见。当我将这些标签添加到表单而不是 GroupBox 时,它们都是可见的,但我希望它们在框中......我已经尝试了几乎所有东西,但我仍然很困惑(尤其是行为第一个标签)。我知道这个错误可能很明显而且很愚蠢,但我就是找不到!