如何检查字符串是否适合richtextbox可见区域

时间:2017-01-26 20:49:25

标签: c# winforms

我想将一个非常大的字符串分成片,这样每个片段都可以放入richtextbox的可见区域,这样水平滚动条就不会显示。

我想知道如何确定字符串是否适合richtextbox的可见区域而不更改richtextbox的值。

我搜索了解决方案,我发现大多数结果都建议使用MeasureText / MeasureString,但似乎这两个函数假设只有一行(未包装)。

有没有办法找出多行字符串的高度,该字符串将设置为richtextbox?

1 个答案:

答案 0 :(得分:1)

MeasureTextMeasureString函数的重载接受textarea width, heightTextFormatFlags(TextBoxControl, WordBreak e.t.c)

您可以将text sizeRichTextBoxControl size

进行比较
Size stringSize = new Size();
string text = SomeText();
stringSize = TextRenderer.MeasureText(text, richTextBox1.Font, new Size(richTextBox1.Size.Width, richTextBox1.Size.Height), TextFormatFlags.WordBreak);
string r = string.Format("RTB Width : {0}\r\n", richTextBox1.Size.Width);
r += string.Format("RTB Height : {0}\r\n", richTextBox1.Size.Height);
r += string.Format("TEXT Width : {0}\r\n", stringSize.Width);
r += string.Format("TEXT Height : {0}", stringSize.Height);
MessageBox.Show(r);