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

C# 如何检查字符串是否适合richtextbox可见区域,c#,winforms,C#,Winforms,我想将一个非常大的字符串分成若干个片段,这样每个片段都可以放入richtextbox的可见区域,这样水平滚动条就不会显示出来 我想知道如何在不更改richtextbox值的情况下确定字符串是否可以放入richtextbox的可见区域 我搜索了解决方案,发现的大多数结果都建议使用MeasureText/MeasureString,但这两个函数似乎假设只有一行(未包装) 有没有办法找出将被设置到richtextbox中的多行字符串的高度?MeasureText和MeasureString函数具有重载

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

我想知道如何在不更改richtextbox值的情况下确定字符串是否可以放入richtextbox的可见区域

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


有没有办法找出将被设置到richtextbox中的多行字符串的高度?

MeasureText
MeasureString
函数具有重载,这些重载接受
textarea width、height
TextFormatFlags(TextBoxControl,WordBreak e.t.c)

您可以将
文本大小
RichTextBoxControl大小

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

为什么投票关闭?WordWrap设置为true时,您不应该看到水平滚动条。@LarsTech我们无法控制垂直滚动条,对吗?有什么需要控制的?@LarsTech强制它不可见。因为在我的例子中,如果字符串足够长,它将导致包装器字符串扩展到richtextbox的可见区域之外。然后,vscroll栏将自动打开