代码之家  ›  专栏  ›  技术社区  ›  Clement Herreman

对齐文本框和标签文本

  •  7
  • Clement Herreman  · 技术社区  · 15 年前

    我正在设计一个用户界面,我发现自己有点头疼:我如何将文本框文本和标签文本并排对齐。

    在设计模式下,很容易,你用鼠标移动一条,一条紫色的线出现了,瞧!对齐方式很好,但我的是代码生成的,那么如何对齐它们的内容呢?

    谢谢您!

    编辑 :布局是我不能使用的(我没有制定规则,我的老板会这样做)。

    3 回复  |  直到 15 年前
        1
  •  15
  •   Community Jaime Torres    7 年前

    我喜欢用 FlowLayoutPanel (而不是 TableLayoutPanel )因为你不需要摆弄柱子。 记得 要移除每个控件上的顶部和底部锚定以使它们垂直居中,请设置flowlayoutcontrol.autoSize=true和autoSizeMode=GrowandShrink。

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

    This question 有一些代码可以用作起点,但正如我所说,在给定性能约束的情况下,它可能不是正确的方法。

        2
  •  4
  •   Henk Holterman    15 年前

    看看TableLayoutPanel。仍然不容易获得基线匹配,但通过垂直居中的标签和设置行自动调整大小,您将得到一些有序和灵活的东西。

        3
  •  1
  •   Matt Jacobsen    15 年前

    然后使用每个控件(从控件继承)的x、y、width、height属性。

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