我有一个覆盖(WinForms)MemoEdit控件(遗憾的是我不能给你代码)。 如果我输入超过32000个字符,则会引发错误“GDI +中发生一般错误” 我认为我的控件中有一个错误(异常),但后来我在一个简单的WinForm应用程序上测试了这段代码:
var myString = new string('G', 32001);
var g = this.CreateGraphics();
g.MeasureString(myString, Font, 1000);
它崩溃了同样的错误 有谁知道为什么会发生这种情况或指定这个常数为32000?我在谷歌上找不到任何有用的东西。
答案 0 :(得分:2)
这似乎是Windows 8中引入的一个新错误。我会对旧版Windows中的行为感到好奇:
答案 1 :(得分:0)
字符串宽度可能超过Int32.Max(您可以参考this thread)。
我知道如果您使用包含特殊字符的阿拉伯语作为您的错误(请参阅MSDN-Link:For bidirectional languages, such as Arabic, the string length must not exceed 2046 characters
)。
要解决您的问题,我建议每31999个字符拆分字符串并添加不同的尺寸/长度。