C# 如何在Windows窗体应用程序中执行float:right?

C# 如何在Windows窗体应用程序中执行float:right?,c#,winforms,windows-forms-designer,C#,Winforms,Windows Forms Designer,我有一个显示用户名onload的windows窗体。在表单的右侧有一个欢迎标签和用户名的链接标签 看起来是这样的: 问题是当用户名太长时,它会超出表单的边界。我尝试将RightToLeft设置为yes,但仍然不起作用,我还尝试将Autosize设置为false和RightToLeft,这似乎对linklabel有效,但这次的问题是它与欢迎标签重叠,反之亦然 我应该如何设置标签和链接标签,使其无论用户名的长度如何,都能从右向左调整。我很久没有用Windows窗体做过任何事情了,但我似乎记得s在这

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

看起来是这样的:

问题是当用户名太长时,它会超出表单的边界。我尝试将RightToLeft设置为yes,但仍然不起作用,我还尝试将Autosize设置为false和RightToLeft,这似乎对linklabel有效,但这次的问题是它与欢迎标签重叠,反之亦然

我应该如何设置标签和链接标签,使其无论用户名的长度如何,都能从右向左调整。

我很久没有用Windows窗体做过任何事情了,但我似乎记得s在这方面做得很棒

在设计器中,设置一个是非常简单的,但实际上您需要四列和两到三行

行:

  • 只是一个缓冲区:空,5倍绝对高度
  • 内容:自动高度
栏目:

  • 无论左边是什么:100%宽度
  • “欢迎”标签:自动宽度
  • 名称标签:自动宽度
  • 缓冲区:10px宽度
显然,这两个缓冲区都是可选的,您可能需要更改大小。但这正是我几年前的记忆,在大多数情况下,这是“大致正确的”

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


您也可以使用带有一些停靠点的面板,但无论是好是坏,它的可扩展性稍差。

只是不要使用单独的标签控件来显示“欢迎”。LinkLabel控件允许您使用其LinkArea属性混合文本和超链接。因此,只需将其保留为单个控件,将其固定在顶部+右侧,AutoSize=false,TextAlign=TopRight,并使其足够宽以适合Llanfairpwlgwyngyll先生

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