• ベストアンサー

同時にパネルを水平スクロールさせる

VB2008で二つのpanel(splitcontainerではない)を用いたアプリケーションを作成しています。 片方のパネルの水平スクロールバーを動かしたら、もう片方も一緒に水平にスクロールさせるようにしたいのですがどうしたらよいのか分かりません。 パネルは、上下に並べないといけません。 どなたかご教授お願いします。

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

  • ベストアンサー
回答No.1

状況によっても異なりますが、ヒントになりそうなものを。 > 水平スクロールバーを動かしたら PanelのScrollイベントで e.ScrollOrientation が ScrollOrientation.HorizontalScroll であれば水平スクロールの移動を捉えられます。 > もう片方も一緒に水平にスクロール Panel.HorizontalScroll.Value に値をセットするか、 Panel.AutoScrollPosition を実行することでスクロールバーを動かせます。 ただし、Panel.HorizontalScroll.Value の場合は Panel.Update をしないと変更が反映されないようです。ただ、イベントごとにUpdateすると画面がちらつくので、e.Type が ScrollEventType.ThumbTrack の時は処理しない、などの対策が必要になります。 AutoScrollを使うか使わないか、によって実装方法が変わるので、ただしく動作する組み合わせを見つけてみてください。

zacky2
質問者

お礼

ありがとうございます。参考にさせていただきます。 このサイトで質問したのは初めてでしたので、どれくらいで回答が来るのか心配でしたが、思った以上に早く回答していただき、感謝しています。