【问题标题】:TextRenderer.DrawString is not drawing a long string [duplicate]TextRenderer.DrawString 未绘制长字符串 [重复]
【发布时间】:2014-09-19 10:43:18
【问题描述】:

下面的代码没有画任何东西:

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)字体。

您知道任何解决方法吗?

【问题讨论】:

  • 一行有很多字符。绘制文本我只看到它用于一次绘制一条线,使用单空格或双空格进行多次显示。无论如何尝试使用.DrawString()
  • 什么?一年前你问了同样的问题,然后又问了?严重地?你在开玩笑吗?明年我们可能会期待同样的问题吗?
  • 也许这对他来说是一年一度的仪式?

标签: c# .net textrenderer


【解决方案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

真是巧合!你在一年前问过同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2022-08-07
    • 2021-04-25
    • 2015-10-21
    • 2012-05-22
    相关资源
    最近更新 更多