1

以下代码没有绘制任何内容:

void Form3_Paint(object sender, PaintEventArgs e)
{
      string text = new string('m', 3000);
      TextRenderer.DrawText(
          e.Graphics,
          text,
          this.Font,
          new Point(10, 10),
          Color.Black,
          Color.Transparent);
}

似乎字符串太长了。如果我将字符串长度更改为 2000 它可以工作(我使用的是 SegoeUI 9)字体。

您知道任何解决方法吗?

4

1 回答 1

1

我试试你的代码块,它画了。所以我将字符串长度增加到 4401。之后我的测试也失败了。

可能TextRender.DrawText方法对字符串有限制。但我认为这个限制应该取决于机器。

你想要一个解决方法。所以我建议这种Graphics.DrawString方法。

string text = new string('m', 4401);
            e.Graphics.DrawString(text,
                this.Font,
                Brushes.Black,
                new Point(0, 0)
                );

已编辑

哦!我搜索了这个问题,我在stackoverflow上找到了这个问题。

TextRenderer 不绘制长字符串

多么巧合!你在一年前问过同样的问题。

于 2014-09-19T11:07:55.133 回答