WinForms中的右对齐标签

Rom*_*kov 44 .net label winforms

Label在WinForms中右对齐a的最明显方法不起作用:将anchor设置为Top/Bottom Right,TextAlign设置为TopRight.如果文本改变了标签的左坐标保持不变而不是右坐标(人们可能认为这是一个错误).

出于这个原因,我总是使用全宽度TableLayoutPanel的右对齐标签.然而,根据所讨论的布局,这并不总是非常方便...

所以,我想知道是否有任何其他方法可以让我在WinForms中保持一个从未发生过的对齐?

Mar*_*ell 52

一个简单的选择是禁用AutoSize(设置为false)并使其超大,以便有空余空间.

或者,也许使用Dock而不仅仅是Anchor,虽然这有不同的含义,所以你可能需要把它放在一个Panel或类似的).最终,这就像第一个一样 - 首先是过度调整它; 所以也许第一种选择更简单.


Dam*_*ien 9

使用带有停靠标签的TableLayoutPanel是我发现在Winforms中放置右对齐标签的唯一可靠方法.关闭AutoSize并使用超大标签似乎会导致高DPI用户出现奇怪的异常.


Aar*_*ing 8

使用FlowLayoutPanel可以很好地完成它.

flowLayoutPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
flowLayoutPanel2.Controls.Add(label);
Run Code Online (Sandbox Code Playgroud)

然后,只需确保flowLayoutPanel足够大,以便标签扩展.


小智 7

这是在标准表格上对我有用的东西

  • 关闭AutoSize属性,仅使标签右对齐
  • 使用"布局"工具栏使所有字段的大小相同(可能并非真正需要)
  • 多选标签并使用"布局"工具栏右对齐它们,将位置放在所需位置
  • 将TextAlign属性设置为xxxRight设置之一,例如TopRight