2014-09-19 3 views
0

다음 코드는 그림되지 아무것도 그리기되지 않습니다 TextRenderer.DrawString는 긴 문자열을

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 글꼴이 사용됩니다.

해결 방법에 대해 알고 계십니까?

+0

한 줄에 많은 문자가 있습니다. 텍스트 그리기 나는 다중 디스플레이를위한 단일 또는 이중 공간을 사용하여 한 번에 한 줄씩 그리는 데 사용되는 것을 보았다. 어쨌든'.DrawString()'을 대신 사용해보십시오. – Franck

+1

무엇? 1 년 전에 같은 질문을하고 다시 묻지 않으셨습니까? 진심으로? 농담하니? 아마도 내년에도 같은 질문을 할 수 있을까요? –

+0

어쩌면 이것이 그에게 해마다의 의식인가? –

답변

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

무슨 우연의 일치

! 1 년 전에도 같은 문제를 요청했습니다.