对齐TextBox和Label文本

我正在设计一个用户界面,我发现自己的头痒:如何对齐TextBox文本和标签文本,它们是并排的。

在设计模式下,它很简单,你用鼠标移动一个,出现紫色线条瞧! 对齐是好的,但我的代码是生成的,所以我如何调整其内容?

谢谢 !

编辑 :布局是我无法使用的东西(我没有制定规则,我老板做..)

我喜欢使用FlowLayoutPanel (而不是TableLayoutPanel )来实现此目的,因为您不需要使用列。 请记住删除每个控件上的顶部和底部锚点以使它们垂直居中,并设置FlowLayoutControl.AutoSize = true和AutoSizeMode = GrowAndShrink。

编辑 :关于“布局是我无法使用的东西”的限制:所以您希望在运行时以编程方式访问紫色文本基线捕捉线位置? 这是可能的,但它不可能比布局更快,因为只有控件的设计者知道它在哪里,所以你必须为你需要的所有控件创建设计器。

这个问题有一些代码可以作为起点,但正如我所说,考虑到性能限制,它可能不是正确的方法。

看看TableLayoutPanel。 仍然不容易获得基线匹配,但通过垂直居中标签并将Rows设置为AutoSize,您将获得有序且灵活的东西。

然后使用每个控件的X,Y,Width,Height属性(从Controlinheritance)。

 int padding = 5; textbox.Y = label.Y; textbox.X = label.Width + padding