我想将一个非常大的字符串分成片,这样每个片段都可以放入richtextbox的可见区域,这样水平滚动条就不会显示。
我想知道如何确定字符串是否适合richtextbox的可见区域而不更改richtextbox的值。
我搜索了解决方案,我发现大多数结果都建议使用MeasureText / MeasureString,但似乎这两个函数假设只有一行(未包装)。
有没有办法找出多行字符串的高度,该字符串将设置为richtextbox?
答案 0 :(得分:1)
MeasureText
和MeasureString
函数的重载接受textarea width, height
和TextFormatFlags(TextBoxControl, WordBreak e.t.c)
您可以将text size
与RichTextBoxControl 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);