看看这个样本:
public partial class Form1 : Form
{
private static string myString = null;
private const int MAX_TEXT = 5460;
public Form1()
{
InitializeComponent();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < MAX_TEXT; i++)
{
builder.Append('a');
}
myString = builder.ToString();
this.Paint += Form1_Paint;
}
void Form1_Paint(object sender, PaintEventArgs e)
{
TextRenderer.DrawText(
e.Graphics,
myString,
this.Font,
new Point(10, 30),
Color.Black);
}
}
当我设置MAX_TEXT
到5461,该字符串未绘制。您是否知道本机机制是否有绘制文本的限制,是否/或者我可以设置选项以使其正常工作?
我认为您遇到了 TextRenderer 类的限制,我认为该类在幕后调用了 DrawTextEx API 函数。如果你尝试把你的builder.ToString()
结果放入文本框,它也不会显示。
如果由于某种原因您需要打印那么长的字符串,则必须恢复到 DrawString 方法:
e.Graphics.DrawString(myString, this.Font, Brushes.Black, new Point(10, 30));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)