【问题标题】:How do I orderly generate controls underneath eachother?如何在彼此下方有序地生成控件?
【发布时间】:2010-06-22 08:45:52
【问题描述】:

我有一个生成表单和控件的类。控件在按钮、单选控件、复选框和标签之间有所不同。这个想法是在每个控件上方巧妙地创建带有标签的表单。问题是我似乎找不到整齐组织/间隔它们的公式或方法。当我只有文本框时它工作得很好,但我不确定如何处理更大的控件,比如复选框列表。这是我如何处理文本框的示例:

            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 像素的间距。

提前谢谢你。

【问题讨论】:

    标签: c# controls location spacing


    【解决方案1】:

    使用tablelayout。你可以在代码隐藏文件中看看设计器是如何做到的。

    对于间距,填写控件的“边距”属性。 5 在上面和 5 在底部应该这样做。

    【讨论】:

    • 天哪,我从没想过要那样做。非常感谢,我相信这会成功的!
    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2021-04-14
    • 1970-01-01
    • 2021-02-03
    • 2019-06-02
    相关资源
    最近更新 更多