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