自作したスクロールバー付きのピクチャーボックスに矩形だけでなく円や直線を描画する機能を追加します。それから矩形や円、直線を描画する処理は別のクラスに分離することを考えます。クラスが変に肥大化すると管理が難しくなります(もうすでになっているかも)。

ドラッグされた部分に図形を描画するクラスを示します。

Shapeでドラッグされた部分に何を描画するのかを設定できるようにします。

ScrollPictureBoxクラスにおける処理を示すまえに、新しいイベントハンドラの引数になるPictureBoxMouseEventArgsクラスを示します。これはマウスボタンが押された座標と離された座標、移動した座標(それぞれについてPictureBox上の座標とBitmap上のPixsel座標)を知らせるためのものです。

ScrollPictureBoxクラスを示します。

これで試運転をしてみます。