C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: RichTextBoxに表示されている行数をもとめるには


(過去ログ 12 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■3528 / inTopicNo.1)  RichTextBoxに表示されている行数をもとめるには
  
□投稿者/ aoa (36回)-(2007/05/14(Mon) 13:11:41)

分類:[.NET 全般] 

RichTextBoxに表示されている先頭の行数を求める方法は
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8248&forum=7
などで分かったのですが、
表示されている行数を調べる方法が分かりません。

行ごとにフォントサイズが異なる場合を考えると、
RTFを解析するしかないという気がするのですが、
表示されている先頭がわかるなら終わりも知る方法があるのではないかと思い質問しました。

よろしくお願いします。
引用返信 編集キー/
■3533 / inTopicNo.2)  Re[1]: RichTextBoxに表示されている行数をもとめるには
□投稿者/ ダッチ (130回)-(2007/05/14(Mon) 15:05:40)
2007/05/14(Mon) 15:07:31 編集(投稿者)
2007/05/14(Mon) 15:07:22 編集(投稿者)

表示上の最終行を求めるには、

RichTextBox.GetCharIndexFromPosition メソッド と
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.getcharindexfromposition(VS.80).aspx

RichTextBox.GetLineFromCharIndex メソッド を
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.getlinefromcharindex(VS.80).aspx

組み合わせてみてはいかがでしょうか。

あとは最終行から先頭行を引けば表示している行数が求まるかと思います。
引用返信 編集キー/
■3539 / inTopicNo.3)  Re[2]: RichTextBoxに表示されている行数をもとめるには
□投稿者/ aoa (38回)-(2007/05/14(Mon) 16:45:02)
なるほど、
RichTextBox.GetCharIndexFromPositionは気づきませんでした。

public Int32 GetLastVisibleRowIndex() {
    //左下の座標を求める
    Point point = new Point(0, this.Height);
    Int32 pos = base.GetCharIndexFromPosition(point);
    return base.GetLineFromCharIndex(pos);
}

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

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -