【问题标题】:How can I do float:right in Windows Form Application? [duplicate]如何在 Windows 窗体应用程序中执行 float:right? [复制]
【发布时间】:2015-03-27 10:30:51
【问题描述】:
我有一个显示用户名 onload 的 Windows 窗体。在表单的右侧有一个欢迎标签和用户名的链接标签
看起来像这样:
问题是当用户名太长时,它超出了表单的边界。我尝试将 RightToLeft 设置为 yes 但仍然无法正常工作,我还尝试将 Autosize 设置为 false 和 RightToLeft,它似乎适用于链接标签,但这次的问题是它与 Welcome 标签重叠,反之亦然,
无论用户名的长度如何,我应该如何设置标签和链接标签以从右到左调整。
【问题讨论】:
标签:
c#
winforms
windows-forms-designer
【解决方案1】:
只是不要使用单独的 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);
}
生产:
【解决方案2】:
我已经很长时间没有对 Windows 窗体做任何事情了,但我似乎记得 TableLayoutPanels 对这种事情非常棒。
在设计人员中设置一个非常简单,但基本上你需要四列和两三行。
行:
- 只是一个缓冲区:空,5px 绝对高度
- 内容:自动高度
列:
- 左边是什么:100% 宽度
- “欢迎”标签:自动宽度
- 名称标签:自动宽度
- 缓冲区:10px 宽度
显然这两个缓冲区都是可选的,您可能想要更改大小。但这就是我几年前所记得的,在大多数情况下“差不多”。
我不知道是否有比这更好的方法,但这是完成它的一种非常简单的方法,一旦它就位,你可以用它做更多的布局。
您也可以使用带有一些扩展坞的面板,但无论好坏,它的可扩展性都较差。