C# 标签在分组框中不可见

本文关键字:标签 | 更新日期: 2023-09-27 18:34:26

>我有一个循环,它应该通过 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;

}

当我运行代码时,它会正确创建三个(我的表中有三行)GroupBox 并创建所有标签,但只有第一个标签在其 Groupbox 中可见。当我将这些标签添加到表单而不是分组框时,它们都是可见的,但我希望它们在框中......我已经尝试了几乎所有方法,但我仍然非常困惑(尤其是第一个标签的行为)。我知道这个错误可能是显而易见和愚蠢的,但我就是找不到它!

C# 标签在分组框中不可见

Control.Location 相对于其父级,因此将标签的Location设置为 (5, 15)。

locP.X = 5;
locP.Y = 15;

我的猜测是它们以某种方式重叠并以某种方式相互消失。

您能否尝试在表单有效和无效时发布表单的图片?还添加所有代码?

尝试添加

lblbox[i].Controls.Add(importancelbl[i]);
this.Controls.Add(lblbox[i]);

设置所有属性后