DOBON.NET DOBON.NETプログラミング掲示板過去ログ

textbox全体の行数を取得したい

環境/言語:[XP vb2005]
分類:[.NET]

textboxに表示されているテキスト全体の行数を物理的に(WordWrapがTrueで、右側で折り返されていれば2行として数える)取得したいと思っています。
カレット位置の取得なら探すとヒットするのですが、全体の取得の方は見つからないのです。またカレットの方のソースコードを思いつく限り全体のにしてみてもエラーになってしまって(TextBox1.SelectionStartをTextBox1.Textに変えてみるとか)……

テキスト全体の行数を取得するにはどうしたらよいでしょうか。
よろしくおねがいします。
■No24754に返信(緑可さんの記事)
検索キーワード『WordWrap 行数』で10分で見つけたコードです。
動作検証はしてません。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37294&forum=7
2009/06/15(Mon) 17:53:19 編集(投稿者)

訂正:

■No24754に返信(緑可さんの記事)
> textboxに表示されているテキスト全体の行数を物理的に(WordWrapがTrueで、右側で折り返されていれば2行として数える)取得したいと思っています。

TextBox の代わりに、RichTextBox の利用を検討してみてください。
RichTextBox であれば、
 r = RichTextBox1.GetLineFromCharIndex(RichTextBox1.TextLength)
として、総行数を得ることができます。


<削除>
TextBox でもできない事は無いのですが(EM_GETLINECOUNT)、
プロパティ/メソッドとしては用意されていません。
</削除>

失礼しました。2003 までは RichTextBox にしか無かったのですが、
2005 からは、TextBox にも GetLineFromCharIndex が追加されています。
■No24755に返信(るしぇさんの記事)
> ■No24754に返信(緑可さんの記事)
> 検索キーワード『WordWrap 行数』で10分で見つけたコードです。
> 動作検証はしてません。
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37294&forum=7


ありがとうございます。でもコードが意味不明で挫折しました。ごめんなさいです。

魔界の仮面弁士さま、
TextBox1.GetLineFromCharIndex(TextBox1.TextLength)
で試しにやってみたら一応取得できました。

ありがとうございました!

DOBON.NET | プログラミング道 | プログラミング掲示板