Die*_*ego 5 .net label autosize winforms
现在我澄清这可能是一个重复的问题:WinForms中的右对齐标签 但是没有答案让我满意.
问题很简单:
我有一个右对齐标签,autosize设置为true.预期的行为是,当文本增加时,右坐标保持不变.但事实并非如此.左坐标是保持不变的坐标.
我的应用程序有点小,所以我不想开始将控件放到面板中等等.所以我尝试了所有仅涉及标签属性的解决方案.唯一有效的方法是将autosize设置为false并超出它的大小.(N°1692383号问题的可接受解决方案).但它真的很难看!我真的很想避免这种情况.
任何其他可行的解决方案?
提前致谢!
一种解决方案是在表单构造函数中捕获标签的右边距,并在标签SizeChanged事件中,根据初始右边距,标签的当前值Width和标签Parent的当前值重置位置Width.
这也假设标签锚定在右侧以处理表单大小调整.
private readonly int _rightMargin;
public Form1()
{
InitializeComponent();
_rightMargin = label1.Parent.Width - label1.Right;
}
private void label1_SizeChanged(object sender, EventArgs e)
{
label1.Location = new Point(label1.Parent.Width - _rightMargin - label1.Width, label1.Top);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |