【问题标题】:Vertically aligning controls in a TableLayoutPanel在 TableLayoutPanel 中垂直对齐控件
【发布时间】:2011-04-10 05:07:59
【问题描述】:

有没有办法让 TableLayoutPanel 上的控件的文本内容正确对齐?我在第 0 列有标签,在第 1 列有文本框(或偶尔有 ComboBox 或 NumericUpDown 控件),但标签中的文本在大多数行上通常是一个或两个像素(垂直)。

【问题讨论】:

    标签: c# winforms vertical-alignment tablelayoutpanel


    【解决方案1】:

    选择表格布局面板中的所有控件。在属性选项卡中,确保锚点设置为“左”。我认为它默认为“顶部,左侧”。
    希望能把事情弄清楚。

    【讨论】:

    • 更好更简单。我找到了相同的解决方案,但已经在这里找到了您的解决方案。
    • 对于标签,将 AutoSize 属性设置为 true 也很有用,否则带有空格的字符串会导致换行。
    【解决方案2】:

    几天前我在研究它。我按要求得到了一切。 试试这个:

    对于标签

    • 从 Tablelayoutpanel 中分离标签
    • 将dockstyle设置为顶部
    • 无设置锚点
    • TextAlign = MiddleLeft
    • 然后直接放在表格布局栏里
    • 如果您有标签背景色,请确保行样式高度与标签高度匹配。

    对于文本框

    • 从 Tablelayoutpanel 中分离文本框
    • 将 dockstyle 设置为 none
    • 无设置锚点
    • TextAlign = MiddleLeft(或根据需要)
    • 然后直接放在表格布局列中

    【讨论】:

      【解决方案3】:

      您可以设置以下属性:

      用于标签
      1.Autosize= false;
      2.TextAlign= MiddleLeft;

      用于组合框、文本框等控件

      转到 视图 -> 工具栏 -> 布局

      现在您可以通过一次选择多个控件来通过工具栏非常轻松地进行控件布局............

      【讨论】:

      • 还需要移除顶部锚点。
      【解决方案4】:

      我建议让锚点保持原样,只为太高的控件添加上边距。当我添加标签时,3,6,3,0 的边距对我来说是正常的。正如 Javed 所说,您可以通过单击控件来选择多个控件。令我恼火的是 ComboBoxes 比 Texboxes 大一个像素。不过对此无能为力。

      【讨论】:

        【解决方案5】:

        哦,您的意思是标签的文本基线与其他控件的不同? 如果是这样,请尝试移除垂直锚点。您也可以使用边距。

        【讨论】:

        • 试过了,但它并不适用于一切;组合框仍然没有对齐。
        【解决方案6】:

        我通常做的是把它们放在一个容器中,例如一个面板,然后将它们固定在那个容器上。 添加容器的好处是您还可以减少 Win 处理程序的数量。在那种情况下,这并不重要,因为您已经有了 TablelayoutPanel,所以基本上对于所有控件,您只有一个处理程序。

        【讨论】:

          猜你喜欢
          • 2016-09-18
          • 2014-05-14
          • 1970-01-01
          • 1970-01-01
          • 2016-11-10
          • 1970-01-01
          • 2016-03-02
          • 2010-12-13
          相关资源
          最近更新 更多