|
> 【状況説明】 > ・VscrollBarオブジェクトにより、1つ垂直スクロールバーを設ける。 > ・PictureBoxオブジェクトにより、1つピクチャーボックスを設ける。 > (このピクチャーボックスに折れ線の描画を行う。) > ・垂直スクロールバーとピクチャーボックスを連動させる。 > (垂直スクロールバーのイベントより座標を求め、その取得した座標を元にピクチャーボックスの上下移動を可能とする。)
まず、↑の手法が適切ではないように思います。
PibtureBox を自力で上下しているってことは、何画面にもなるような巨大な描画範囲を想定してないんですよね? (描画範囲が何画面にも渡るような巨大なものになる場合、↑の方法だと破たんするように思います)
であれば
・Panel の上 (0,0) に PictureBox を貼る ・Panel の AutoScroll プロパティを True に設定する
で、PictureBox の Size プロパティを設定すれば、自前で ScrollBar を配置しなくてもスクロール可能となります。
また、例によってですが、このシナリオなら PictureBox に直接描画するのではなく、必要なサイズの Bitmap を作成して、PictureBox の Image プロパティに設定する方がよいと思います。
その上で、ホイール操作による「自然なスクロール」を実現したいなら、Panel でホイール操作のイベントを捕捉して、Panel.SetDisplayRectLocation() メソッドなどを使って表示位置を調整すればいいんじゃないでしょうか。
|