2017-01-26 34 views
0

我想将一个非常大的字符串分成多个切片,以便每个切片都可以放入richtextbox的可见区域,以便水平滚动条不会显示。如何检查一个字符串是否可以放入richtextbox可见区域

我想知道如何确定一个字符串是否可以放入richtextbox的可见区域而不需要改变richtextbox的值。

我搜索的解决方案和我发现的大多数结果表明应该使用MeasureText/MeasureString,但它似乎这两个函数假设只有一行(不包装)。

有没有什么办法找出一个多行字符串的高度,它将被设置成一个richtextbox?

+0

为什么投票结束? – camino

+0

将WordWrap设置为true时,您不应该看到水平滚动条。 – LarsTech

+0

@LarsTech我们无法控制垂直滚动条,对吧? – camino

回答

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); 
相关问题