2017-01-26 58 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); 
相關問題