2011-03-05 1 views
3

RichTextBox 컨트롤의 너비를 다시 계산해야하는이 프로그램을 만들고 있습니다. 문제는 계속해서 잘못 다시 계산된다는 것입니다. 올바른 수식을 사용하여 점을 인치로 변환 한 다음 인치를 픽셀로 변환 한 다음 픽셀을 곱하여 폭을 얻습니다. 아래 코드는 다음과 같습니다.문제가있는 경우 RichTextBox 컨트롤의 너비를 다시 계산하십시오.

 foreach (RichTextBox r in panel1.Controls) 
     { 


      if (r.DisplayRectangle.IntersectsWith(contextMenuStrip1.DisplayRectangle)) 
      { 

       Graphics gfx = this.CreateGraphics(); 
       float dpix = gfx.DpiX; 
       float dpiy = gfx.DpiY; 
       int numofchars = r.TextLength; 
       float point = r.Font.SizeInPoints; 
       float inches = point/72; 
       float pixels = dpiy * inches; 
       float width = (pixels * numofchars); 
       r.Width = Convert.ToInt32(width); 


      } 
     } 

답변

1

Graphics.MeasureString 방법을 살펴 보았습니까?

+0

감사합니다. 서브 루틴이 있다는 것을 몰랐습니다. 그것은 내 인생을 더욱 단순하게 만듭니다. –

+0

도움이 된다니 기쁘다. –