如何浮动:在Windows窗体应用程序中?

时间:2015-03-27 01:51:55

标签: c# winforms windows-forms-designer

我有一个显示用户名onload的Wi​​ndows窗体。在表单的右侧有一个欢迎的标签和用户名的链接标签

看起来像这样:

enter image description here

问题是当用户名太长时,它超出了表单的边框。我尝试将RightToLeft设置为yes但仍然无效,我也尝试将Autosize设置为false和RightToLeft,它似乎适用于linklabel但这次问题是它与Welcome标签重叠或反之亦然,

无论用户名的长度如何,我应该如何设置标签和链接标签以从右到左进行调整。

2 个答案:

答案 0 :(得分:4)

只是不要使用单独的Label控件来显示“欢迎”。 LinkLabel控件允许您将文本和超链接与其LinkArea属性混合。所以只需保持一个控件,将其固定在Top + Right,AutoSize = false,TextAlign = TopRight,并使其宽度足以适合Llanfairpwllgwyngyll先生。

    public Form1() {
        InitializeComponent();
        string prefix = "Welcome ";
        linkLabel1.Text = prefix + Environment.UserName;
        linkLabel1.LinkArea = new LinkArea(prefix.Length, linkLabel1.Text.Length - prefix.Length);
    }

产地:

enter image description here

答案 1 :(得分:0)

这是很长时间,因为我对Windows Forms做了任何事情,但我似乎记得TableLayoutPanel对于这种事情很棒。

设计师可以非常直接地设置一个,但基本上你需要四列和两三行。

行:

  • 只是缓冲区:空,5px绝对高度
  • 内容:自动高度

列:

  • 左边是什么:100%宽度
  • "欢迎" label:auto-width
  • 名称标签:自动宽度
  • 缓冲区:10px宽度

显然两个缓冲区都是可选的,您可能想要更改大小。但这就是我几年前记得的关于正确"在大多数情况下。

我不知道是否有比这更好的方法,但这是完成它的一种非常简单的方法,并且你可以用它做更多的布局一旦它的布局到位。

你也可以使用带有一些底座的面板,但这种面板的可扩展性有所提高,无论好坏。