用一组标签填充控件

时间:2014-02-26 12:05:33

标签: c# winforms label-control

我正在编写一个程序,从注册表中获取数据,然后将组框添加到tabcontrol,在组框中,我想创建尽可能多的标签控件(以显示注册表信息)尽可能多的数据(密钥 - 价值对)我得到了。 为此,我做了这个功能:

private void AddAllControl()
{
    GroupBox TestGroupBox = new GroupBox();
    TestGroupBox.AutoSize = true;
    TestGroupBox.Text = "valami";
    TestGroupBox.Height = 500;
    for (int i = 0; i < 21; i++)
    {
        Label TempLabel = new Label();
        TempLabel.Text = i.ToString();
        TempLabel.Location = new System.Drawing.Point(20 + i, 30);
        TempLabel.Show();
        TempLabel.Visible = true;
        TempLabel.Enabled = true;
        TestGroupBox.Controls.Add(TempLabel);               
    }
    tabPage_SandBox.Controls.Add(TestGroupBox);
}

按下按钮时处理此功能。之后,组合框正确显示,但只有1个标签(第一个带有text = 0)而不是21个标签。 当我停止调试程序时,我看到所有标签都存在且所有属性都是正确的,但它们不会出现。 必须有一些我没有注意到的东西。 现在我的问题是什么?我错了什么? 正如您所看到的,我尝试了visibleenabled属性,但都没有为我提供解决方案。

2 个答案:

答案 0 :(得分:0)

你必须设置

  TempLabel.AutoSize = true;

你必须稍微修改一下这个位置

 TempLabel.Location = new System.Drawing.Point(20 + 10 * i, 30);

或者我认为你想让标签一个在另一个之下,所以你必须设置像

这样的位置
 TempLabel.Location = new System.Drawing.Point(20, 20+20 * i);

答案 1 :(得分:0)

如果您的标签尺寸恒定,那么

TestGroupBox.Controls.Add(new Label()
{
    Text = i.ToString(),
    Location = new Point(20 + (i*20), 30),
    Size = new Size(20, 20)
});

会做的伎俩