2013-07-08 19 views
1

看:TextRenderer不會在這個樣本得出的長字符串

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,字符串是不繪製。你知道,如果本機制有限制繪製文本,如果/或者我可以設置選項以使其工作?

在此先感謝。

回答

2

我認爲你已經達到了TextRenderer類的限制,我認爲這是在引擎蓋下調用DrawTextEx API函數。如果您嘗試將builder.ToString()結果放入文本框中,它也不會顯示出來。

如果由於某種原因,你需要打印字符串長,你就必須恢復到拉繩方法:

e.Graphics.DrawString(myString, this.Font, Brushes.Black, new Point(10, 30)); 
相關問題