• ベストアンサー

2つのスクロールバーを連動させる方法

いつもお世話になります。 VS.Net 2003でC#でアプリをつくっています。 フォームにRichTextBoxを2つ並べてあり、互いのスクロールバーを連動させようとしています。 片方を動かすともう片方もスクロールするという動作です。 (互いの行数は常に同じになるようにしています) 実現方法をご教授ねがえますでしょうか・・・ よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • circuit
  • ベストアンサー率72% (13/18)
回答No.1

ここは C/C++ のカテゴリで、C#ではないですよ。 すれ違いです。 といっても、C#がないので仕方ないっちゃ仕方ないかもしれませんが… 参考URLにVisualC#フォーラムのアドレス張っておきましたので、そちらを利用してください。 それで、解決法ですが、あんまり詳しくないので参考程度にしてください。 コントロールに対する直接的な処理は.NETでは出来ませんので、APIを利用します。 [DllImport("USER32.dll")] private static extern IntPtr SendMessage (IntPtr hWnd , int msg , int wp, out Point lp); private const int EM_GETSCROLLPOS = 0x04DD; private const int EM_SETSCROLLPOS = 0x04DE; private void richTextBox1_VScroll(object sender, System.EventArgs e) {  Point pt;  SendMessage(richTextBox1.Handle, EM_GETSCROLLPOS, 0, out pt);  SendMessage(richTextBox2.Handle, EM_SETSCROLLPOS, 0, out pt); } ただし問題が… VScrollイベントは、▲▼ボタンを押したときに来るようで、スクロールバーを操作してもイベントが来ませんでした。 直接的な操作は、C#では難しいってことでしょうかね…

参考URL:
http://forums.belution.com/ja/csharp/
shota888
質問者

お礼

ありがとうございました! 応用させてやりたい処理が行うことができました! 大いに助かりました! C#の質問はいつもどこにしたら良いか迷っています。 フォーラム参考にします。 ありがとうございました。

関連するQ&A