C# Winforms RichTextBox에서 한 줄에 몇 개의 문자를 넣을 수 있는지 알고 싶습니다. 내 글꼴 (monospaced 문자) 및 FontSize 알아. 글꼴은 고정 폭 인 경우 Graphics.MeasureString에 의해 측정 된RichTextBox가 줄에 가질 수있는 문자의 수를 측정하십시오.
건배, 숀
C# Winforms RichTextBox에서 한 줄에 몇 개의 문자를 넣을 수 있는지 알고 싶습니다. 내 글꼴 (monospaced 문자) 및 FontSize 알아. 글꼴은 고정 폭 인 경우 Graphics.MeasureString에 의해 측정 된RichTextBox가 줄에 가질 수있는 문자의 수를 측정하십시오.
건배, 숀
, 한 문자의 폭 텍스트 상자의 폭을 분할 :
static int GetWidthInChars(int widthInPixels, Font font, Graphics g)
{
return (int) (widthInPixels/g.MeasureString ("a", font).Width);
}
나는 하나 개의 문자를 측정하는 몇 가지를 추가 것으로 나타났습니다 한 문자의 실제 너비를 부적절하게 나타내는 추가 공간.
private int CalculateMaxDescriptionLineLength()
{
Graphics g = _tb.CreateGraphics();
float twoCharW = g.MeasureString("aa", _tb.Font).Width;
float oneCharW = g.MeasureString("a", _tb.Font).Width;
return (int)((float)_tb.Width/(twoCharW - oneCharW));
}
나를 올바른 방향으로 인도 해준 세르게이.
'TextRenderer.MeasureText'를 사용해보세요. .NET2.0은'Graphics' (GDI +) 대신'TextRenderer' (GDI)를 사용하기 때문에. 그들 사이에 차이가 있습니다. –
TextRenderer를 사용했지만 문자를 측정 할 때 반올림 오류가 발생했다는 것을 SizeF가 아니라 Size를 반환한다는 사실을 알았습니다. 그 오류는 텍스트 상자 너비에 걸쳐 혼합되어 원래 질문에 대한 응답이 덜 정확하게 나타납니다. –