如何在 Windows 表格申请中执行 float:right?

How can I do float:right in Windows Form Application?

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

看起来像这样:

问题是当用户名太长时,它超出了表单的边界。我尝试将 RightToLeft 设置为 yes 但仍然无法正常工作,我还尝试将 Autosize 设置为 false 和 RightToLeft 并且它似乎适用于链接标签但这次的问题是它与欢迎标签重叠或反之亦然,

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

我已经 long 时间没有使用 Windows 表单,但我似乎记得 TableLayoutPanels 对于这种东西。

在设计器中进行设置非常简单,但基本上您需要四列和两三行。

行数:

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

列:

  • 无论左边是什么:100% 宽度
  • "Welcome" 标签:自动宽度
  • 名称标签:自动宽度
  • 缓冲区:10px 宽度

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

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

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

只是不要使用单独的 Label 控件来显示 "Welcome"。 LinkLabel 控件允许您使用其 LinkArea 属性 混合文本和超链接。因此,只需将其保持为单个控件,将其锚定到 Top+Right,AutoSize = false,TextAlign = TopRight 并使其足够宽以适合 Mr. Llanfairpwllgwyngyll。

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

产生: