0

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); " にいくつかの無効な引数があります。

4

1 に答える 1

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);
于 2013-05-23T16:50:40.483 に答える