2013-07-08 6 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); 
    } 
} 

내가 5461에 MAX_TEXT을 설정하면 문자열이 그려지지 않습니다. 네이티브 메커니즘이 텍스트를 그릴 수있는 한계를 가지고 있는지, 아니면 옵션을 설정하여 작동시킬 수 있는지 알고 있습니까?

미리 감사드립니다.

답변

2

TextRenderer 클래스의 한계에 부딪혔다 고 생각합니다.이 클래스는 DrawTextEx API 함수를 호출하고 있다고 생각합니다. builder.ToString() 결과를 TextBox에 넣으려고해도 표시되지 않습니다.

어떤 이유로 당신은 오래, 당신은 다시 졸라 방법에 복귀해야하는 문자열을 출력해야하는 경우 :

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