C# 在TableLayoutPanel中垂直对齐控件

C# 在TableLayoutPanel中垂直对齐控件,c#,winforms,vertical-alignment,tablelayoutpanel,C#,Winforms,Vertical Alignment,Tablelayoutpanel,有没有办法让TableLayoutPanel上控件的文本内容正确对齐?我在第0列中有标签,在第1列中有文本框(有时也有ComboBox或NumericUpDown控件),但在大多数行中,标签中的文本通常是一个或两个像素(垂直方向)。哦,你的意思是标签的文本基线不同于其他控件? 如果是,请尝试移除垂直锚。您也可以使用边距。我通常会将边距放在一个容器中,例如一个面板,并将其相对固定。 添加容器的优点是,还可以减少Win处理程序的数量。在这种情况下,这无关紧要,因为您已经有了TablelayoutPa

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

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

我通常会将边距放在一个容器中,例如一个面板,并将其相对固定。
添加容器的优点是,还可以减少Win处理程序的数量。在这种情况下,这无关紧要,因为您已经有了TablelayoutPanel,所以基本上所有控件都只有一个处理程序。

您可以设置以下属性:

对于标签
1.
Autosize=false
2.
TextAlign=middleft

对于Combobox、Textbox等控件

转到查看工具栏布局


现在,您可以通过工具栏一次选择多个控件,非常轻松地给出控件的布局………

我建议保持锚点不变,只需在过高的控件上添加上边距即可。添加标签时,3,6,3,0的边距对我来说是正常的。正如Javed所说,您可以通过单击控件来选择多个控件。组合框比texbox大一个像素,这让我很恼火。不过我对此无能为力。

几天前我就做过。我得到了所需的一切。 试试这个:

用于标签

  • 从Tablelayoutpanel分离标签
  • 将dockstyle设置为top
  • 设置锚点无
  • TextAlign=middleft
  • 然后把它放在“表格布局”列中
  • 如果有标签底色,请确保行样式高度与标签高度匹配
用于文本框

  • 从Tablelayoutpanel分离文本框
  • 将dockstyle设置为“无”
  • 设置锚点无
  • TextAlign=middleft
    (或根据需要)
  • 然后把它放在“表格布局”列中

选择表格布局面板中的所有控件。在“属性”选项卡中,确保锚定设置为“左”。我认为它默认为“左上角”。

希望能让事情变直。

尝试过,但并不适用于所有事情;组合框仍然对齐不好。还需要移除顶部锚。更好更简单。我找到了相同的解决方案,但在这里已经找到了您的解决方案。对于标签,将AutoSize属性设置为true else字符串(带空格导致换行)也很有用。