我有15到20个标签,文本大小可变,文本框排列在表格中。文本框排列在标签旁边。表单的字体和颜色以及表单控件可以由用户在运行时配置。当我右对齐标签并将auto grow属性设置为true时,无论何时字体样式发生更改(例如从Arial到Georgia),右对齐标签都不会更右对齐。
我需要一个标签上的解决方案(用于winforms),以便在字体大小改变时自动增长到左侧。
答案 0 :(得分:5)
将标签属性设置为以下内容;
AutoSize = false;
TextAlign = TopRight (or anything to right)
然后手动将标签调整到最大区域以适合您最长的文本。这对我有用。
答案 1 :(得分:3)
将锚设置为“右”而不是“左”(你可能也会有“顶部”,在这种情况下它是“右上”而不是“左上”),它应该在右(左)方向增长我相信。有一段时间以来,我做了任何这样的尝试,让我知道它是怎么回事。
答案 2 :(得分:1)
您可以使用TableLayoutPanel
。
答案 3 :(得分:1)
您也可以使用RightToLeft label property而不是修改Anchor。
答案 4 :(得分:0)
我遇到了同样的问题。我的修复是创建一个简单的函数来移动标签,我在任何改变标签大小的事件或代码之后调用它。
输入要向左增长的标签名称,以及标签右端的X坐标。然后在对标签进行任何更改后调用此函数。
private void repositionLabel(Label lab, int endPoint)
{
lab.Left = endPoint - lab.Width;
}
例如,您有一个名为myLabel的标签位于(75,75),它当前的宽度为25,您始终希望它以(100,75)结束。然后当发生这种情况时:
myLabel.Text = "blah blah blah blah blah blah";
然后您按照文字更改:
repostitionLabel(myLable, 100);
这会使标签看起来像展开到左侧。