如何在彼此之下有序地生成控件?

时间:2010-06-22 08:45:52

标签: c# controls location spacing

我有一个生成表单和控件的类。按钮,无线电控件,复选框和标签之间的控件有所不同。我们的想法是整齐地创建每个控件上方带有标签的表单。问题是我似乎无法找到整齐地组织/分隔它们的公式或方法。当我只有文本框时,它工作正常,但我不知道如何处理更大的控件,如复选框列表。以下是我处理文本框的示例:

            case "Text":
                TextBox tbx = new TextBox();
                tbx.Name = df.Value.Name;
                tbx.Text = (df.Value.DefValue != null) ? df.Value.DefValue : "";
                tbx.Location = new Point(lbl.Location.X, lbl.Location.Y + 20);
                f.Controls.Add(tbx);
                break;

请注意,这一切都在foreach循环中。这是它之前的部分(标签):

        if (i == 0)
        {
            lbl.Location = new Point(10, 10);
        }
        else
        {
            lbl.Location = new Point(10, (i * 50) + 10);
        }

这样可以整齐地对文本框和标签进行排序。谁能为我提供一些如何处理不同控件的建议?我想将它们放在彼此之下,但是从每个控件的底部到下一个标签的顶部保持至少10个像素的间距。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

使用tablelayout。您可以查看设计人员如何在代码隐藏文件中执行此操作。

对于间距,请填写控件的“margin”属性。 5在顶部,5在底部应该这样做。