以下代码不会绘制任何内容:
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)字体。
您知道任何解决方法吗?
答案 0 :(得分: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 doesn't draw a long string
多么巧合!你在1年前问过同样的问题。