标签中的行间距(autosize = false)C#

时间:2013-05-23 16:46:49

标签: c# label double space

我知道可以在Label中进行行间距。有人可以帮我做这个吗? 我需要一个双倍间距或1.5间距的标签。

我找到了这段代码,但它无效:

    private void label1_Paint(object sender, PaintEventArgs e)
    {
        string text = "Sri Lanka";
        Graphics g = e.Graphics;
        Font font = new Font("Arial", 10);
        Brush brush = new SolidBrush(Color.Black);
        float lineSpacing = 0.5f;

        SizeF size = g.MeasureString("A", font);

        float pos = 0.0f;
        for (int i = 0; i < text.Length; ++i)
        {
            string charToDraw = new string(text, 1);
            g.DrawString(charToDraw, font, brush, pos, 0.0f);
            SizeF sizeChar = g.MeasureString(charToDraw, font);
            pos += sizeChar.Width + size.Width * lineSpacing;
        }
    } 

它给出了错误:'string.string(char,int)'的最佳重载匹配在此代码上有一些无效的参数 string charToDraw = new string(text, 1);

1 个答案:

答案 0 :(得分:0)

那是因为你传递一个字符串作为第一个参数,并且没有重载的字符串构造函数将字符串作为第一个参数。

如果您尝试逐个字符地访问字符串,请尝试:

for (int i = 0; i < text.Length; ++i)
{
    char charToDraw = text[i];

但是如果你试图逐个字符地传递给DrawString(),你将需要单个字符串的字符串版本,所以这样做会更容易:

for (int i = 0; i < text.Length; ++i)
{
    string charToDraw = text.SubString(i, 1);