是否可以让字符串宽度相同?

时间:2014-05-19 06:49:37

标签: c# string width

我使用的是Winform,我有很多Label排队为ListView。 标签连续三个内容,我希望我可以有一些方法让每个内容相同的宽度。 我尝试了PadRight,但它并没有真正解决问题,如果内容是全宽,那么计算string.length是没用的。

My Label是动态创建的,如下所示:

int lineheight=24;
for(int i=0; i<40;i++){
    Label test = new Label();
    test.Name = "test" + i;
    test.Text = padLength(str1, 16) + padLength(str2, 27) + padLength(str3, 10); // str1~str3 is data that user input in another user control
    test.AutoSize = false;
    test.Top = 10 + lineheight * i;
    test.Left = lineheight;
    test.Width = panel1.Width - lineheight;
    test.Height = lineheight;
    test.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    panel1.Controls.Add(test);
}

和函数padLength是我需要让字符串宽度相同的内容,如:

 private string padLength(string str,int len)
{
    string tmp = str;

    for (int i = 0; i < len; i++)
    {
        if (tmp.Width != len)
        {
            tmp = tmp + " ";
        }
    }
    return tmp;
}

因为我需要移动控件(通过自定义滑动条),我只使用一个Label来呈现三个内容(我尝试过彼此使用三个Label,结果是降低了速度控制移动)。

我知道有一种方法可以使用MeasureString()测量字符串宽度,但我不确定如何使用它(因为它使用Graphic类)...... < / p>

任何建议都表示赞赏。

0 个答案:

没有答案