2017-01-26 1 views
0

非常に大きな文字列をスライスに分割して、各スライスがリッチテキストボックスの可視領域に収まるようにして、水平スクロールバーが表示されないようにします。文字列がリッチテキストボックスの可視領域に収まるかどうかをチェックする方法

richtextboxの値を変更せずに文字列がrichtextboxの表示領域に収まるかどうかを判断する方法を知りたいと思います。

私はMeasureText/MeasureStringを使用すべきであることを示唆したほとんどの結果を検索しましたが、これらの2つの関数は1つの行(ラップされていない)と仮定しているようです。

リッチテキストボックスに設定される複数行の文字列の高さを調べる方法はありますか?

+0

であなたのtext sizeを比較することができ、なぜ近くに投票? – camino

+0

WordWrapをtrueに設定すると、水平スクロールバーが表示されません。 – LarsTech

+0

@LarsTech私たちは垂直スクロールバーをコントロールできません、そうですか? – camino

答えて

1

MeasureTextMeasureString機能textarea width, heightTextFormatFlags(TextBoxControl, WordBreak e.t.c)

を受け入れるオーバーロードを持っているあなたは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); 
関連する問題