代码之家  ›  专栏  ›  技术社区  ›  Nagesh

向左调整Winforms中标签的大小

  •  2
  • Nagesh  · 技术社区  · 15 年前

    我有15到20个标签与可变的文本大小和文本框的形式安排。文本框排列在标签旁边。用户可以在运行时配置窗体的字体和颜色以及窗体控件。当我右对齐标签并将auto grow属性设置为true时,每当字体样式更改(比如从Arial更改为Georgia)时,右对齐的标签将不再右对齐。

    我需要一个解决方案的标签(为winforms)自动增长到左边时,字体大小的变化。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Lazarus    15 年前

        2
  •  6
  •   bmkorkut    15 年前

    设置标签属性如下:;

    AutoSize = false;
    TextAlign = TopRight (or anything to right)
    

        3
  •  1
  •   Daniel Brückner    15 年前

    你可能需要一个 TableLayoutPanel .

        4
  •  1
  •   serhio    15 年前

    你也可以用 RightToLeft label property 而不是修改锚点。

        5
  •  0
  •   nathant23    15 年前

    我也有同样的问题。我的解决方案是创建一个简单的函数来移动标签,在任何更改标签大小的事件或代码之后调用该函数。

    输入要向左扩展的标签的名称,以及标签右端的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);