测量RichTextBox在一行中可以拥有的字符数

时间:2017-04-25 13:09:20

标签: c# winforms richtextbox measure

鉴于C#Winforms RichTextBox,我想知道我可以在一行上放置多少个字符。我知道我的字体(等宽字符)和FontSize是什么。

干杯, 肖恩

2 个答案:

答案 0 :(得分:0)

如果您的字体是等宽字体,只需将文本框宽度除以Graphics.MeasureString所测量的一个字符的宽度:

static int GetWidthInChars(int widthInPixels, Font font, Graphics g)
{
    return (int) (widthInPixels / g.MeasureString ("a", font).Width);
}

答案 1 :(得分:0)

我注意到测量一个角色会增加一些空间,这些空间不足以代表一个角色的实际宽度。

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));
}

感谢谢尔盖让我走上了正确的道路。