winforms 在TableLayoutPanel中垂直对齐控件

fd3cxomn  于 2023-03-31  发布在  其他
关注(0)|答案(7)|浏览(165)

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

ikfrs5lh

ikfrs5lh1#

选择表格布局面板中的所有控件。在属性选项卡中,确保锚设置为“左”。我想它默认为“上,左”。
希望这能让事情变好。

cetgtptt

cetgtptt2#

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

对于标签

  • 从“表格布局”面板拆下标签
  • 将dockstyle设置为顶部
  • 设置锚点无
  • TextAlign = MiddleLeft
  • 然后只需将其放置在表布局列中
  • 如果有标签背景色,请确保行样式高度与标签高度匹配。
    对于文本框
  • 从TableLayoutpanel中分离文本框
  • 将dockstyle设置为none
  • 设置锚点无
  • TextAlign = MiddleLeft(或根据需要)
  • 然后只需将其放置在表布局列中
t1rydlwq

t1rydlwq3#

您可以设置以下属性:

标签

  1. Autosize= false;
  2. TextAlign= MiddleLeft;
    用于组合框、文本框等控件
    后藤查看-〉工具栏-〉布局
    现在,您可以通过工具栏选择一次多个控件来轻松地为您的控件给予布局。
7z5jn7bk

7z5jn7bk4#

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

huwehgph

huwehgph5#

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

oyjwcjzk

oyjwcjzk6#

我通常做的是把它们放在一个容器里,比如一个面板,然后把它们锚定在面板上。添加容器的好处是你可以减少Win处理程序的数量。在这种情况下,这没关系,因为你已经有了TableLayoutPanel,所以基本上所有的控件都只有一个处理程序。

1u4esq0p

1u4esq0p7#

您可以尝试使用修改后的TextBox而不是Label:https://stackoverflow.com/a/75815030/2408668
该解决方案也适用于较高的DPI。

相关问题