Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向左调整Winforms中标签的大小_C#_.net_Windows_.net 2.0 - Fatal编程技术网

C# 向左调整Winforms中标签的大小

C# 向左调整Winforms中标签的大小,c#,.net,windows,.net-2.0,C#,.net,Windows,.net 2.0,我有15到20个标签,不同的文本大小和文本框排列在表格中。文本框排列在标签旁边。用户可以在运行时配置表单的字体和颜色以及表单控件。当我右对齐标签并将“自动增长”属性设置为true时,以及每当字体样式更改(例如从Arial更改为Georgia)时,右对齐标签不再右对齐 我需要一个标签上的解决方案(对于winforms)在字体大小改变时自动向左增长。将锚定设置为“右”而不是“左”(您可能也会有“顶”,在这种情况下,它是“右顶”而不是“左顶”),我相信它应该向右(左)方向增长。我已经有一段时间没有这样

我有15到20个标签,不同的文本大小和文本框排列在表格中。文本框排列在标签旁边。用户可以在运行时配置表单的字体和颜色以及表单控件。当我右对齐标签并将“自动增长”属性设置为true时,以及每当字体样式更改(例如从Arial更改为Georgia)时,右对齐标签不再右对齐


我需要一个标签上的解决方案(对于winforms)在字体大小改变时自动向左增长。

将锚定设置为“右”而不是“左”(您可能也会有“顶”,在这种情况下,它是“右顶”而不是“左顶”),我相信它应该向右(左)方向增长。我已经有一段时间没有这样做了,所以请尝试一下,让我知道它是如何运行的。

您可能会使用一个。

您也可以使用,而不是修改锚点。

将标签属性设置为如下

AutoSize = false;
TextAlign = TopRight (or anything to right)

然后手动将标签调整到最大区域,以适合最长的文本。这对我很有效。

我也有同样的问题。我的解决方案是创建一个简单的函数来移动标签,在任何事件或代码更改标签大小后调用该函数

输入要向左生长的标签的名称,以及标签右端的X坐标。然后在对标签进行任何更改后调用此函数

private void repositionLabel(Label lab, int endPoint)
        {
            lab.Left = endPoint - lab.Width; 
        }
例如,一个名为myLabel的标签位于(75,75),当前宽度为25,并且始终希望它以(100,75)结尾。然后,当这种情况发生时:

myLabel.Text = "blah blah blah blah blah blah";
然后,您可以使用以下命令跟随文本更改:

repostitionLabel(myLable, 100);

这将使它看起来像是扩展到左侧的标签。

现在我有机会尝试了。我看到了两种解决方案,第一种是最简单的,这就是确保标签中有足够的宽度来接受期望看到的最长字符串,然后用右对齐的文本正确定位它。第二个是创建一个新的标签类,继承自基本标签,添加一个X2或RHS int值,然后覆盖OnAutoSizeChanged事件,以确保标签的X位置在标签宽度增加时相应调整。非常感谢您提供的信息。我已经或多或少地解决了这个问题。你能把你的解决方案作为你问题的答案发布在这里,以帮助将来的其他人吗。你也可以接受你自己的正确答案。@nagesh46s,我不是说接受我的答案。我以为你已经找到了解决问题的办法,不管是基于我说的还是别的。你能在这里把这个解决方案作为你问题的答案,并接受这个答案吗?不知道为什么这个答案没有得到任何支持。这是最简单的答案。