- PR -

2つのTextBoxのスクロールを連動する

1
投稿者投稿内容
shibamu
会議室デビュー日: 2006/01/05
投稿数: 5
投稿日時: 2006-01-05 22:11
C#(.NET Framework2.0)にてWindowsアプリケーションとして小規模なC言語開発環境(コンパイラはVCのものを利用)を開発しています。
その中で、簡単なコードエディタを作成しているのですが、実際にコードを記述するRichTextBoxの左側にもうひとつ、同じ高さのRichTextBoxを置いてそこに行番号(4桁の数字を改行で区切って並べる)を表示させようとしています。
そこで、コードを記述する部分がスクロールされたら行番号を表示する部分も同じ量だけスクロールしたいと考えたのですが、うまく実装する方法がどうにもわからず、困っています。
考えてみた方法は、コードを記述するRichTextBoxのVScrollイベントに対してイベントハンドラを作成し、その中でWinAPIを用いてGetScrollPosでスクロール値を取得し、行番号を表示する部分をSetScrollPosで連動させるというものでしたが、両API関数は成功する(戻り値をチェックした上ではそのように見える)も、行番号テキストは全く動いていないという結果になってしまいました。
行番号を表示するRichTextBoxのScrollBarsプロパティをNoneからVerticalにすると、表示されたスクロールバーは動くものの、テキスト側は固定されたままになってしまいます。

うまく解決する方法はないでしょうか。
どうかよろしくお願いします。
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2006-01-06 00:47
EM_GETSCROLLPOS, EM_SETSCROLLPOSの方を使用しましょう。
shibamu
会議室デビュー日: 2006/01/05
投稿数: 5
投稿日時: 2006-01-06 02:57
>yaさん
遅くなってしまいましたが、SendMessageで当該メッセージを飛ばすことで解決できました!
おかげさまで、なんとか当初考えたものを全て実装しきることに成功しました。
本当にありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)