标签文本从右到左更新

时间:2017-04-06 03:50:00

标签: c# string winforms user-interface label

如何在我的情况下使用几个更新的值设置标签字符串:

 label1.Text = (num1 + "." + num2 + "." + num3);

不是通常的方式:

                        123.8576.87687
                        17.87.1299987
                        9881.0.87
                        765443345600.08776.877667
                        09.8.112

但是如果我想要在表格的右边界附近找到它,请从右侧到左侧更新,如果这个数字是一个标签的给定字符串的更新值序列,则每个时间字符串具有不同的长度: / p>

           123.8576.87687
            17.87.1299987
                9881.0.87
765443345600.08776.877667
                 09.8.112

以这种方式:

           87687.8576.123
            1299987.87.17
                87.0.9881
877667.08776.765443345600
                 112.8.09

将其定位在表单的一角:

enter image description here

4 个答案:

答案 0 :(得分:1)

尝试将AutoSize设置为 false ,并将TextAlign设置为 MiddleRight

label1.AutoSize = false;
label1.TextAlign = ContentAlignment.MiddleRight;

答案 1 :(得分:0)

您可以定义label textAlign属性,如下所示:

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

答案 2 :(得分:0)

基本上,你应该做两件事:

设置TextAlign属性,如下所示:

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

然后将AutoSize属性设置为false:

this.label1.AutoSize = false;

确保标签的大小足以容纳所有数字,就是这样。 enter image description here

答案 3 :(得分:0)

我有一个理论,标签文本和自动调整大小的问题在于,自动调整大小会使文本字段的大小恰好等于文本所需要的大小。因此,将contentalignment放在何处都没有关系。该字段根据包含文本所需的空间来更改大小。位置不变。因此,要解决此问题,您必须操纵标签的位置。

labData.Text = "text"
int labDataRight = lblData.Right;
lblData.Text = "A slightly longer text"; // Autosize will resize the label
lblData.Left = labDataRight - lblData.With;

我还没有对此进行深入的测试,可能是标签位置在进行许多更改后会发生漂移。