前回の続きです。

表示サイズを変更できるようにする<前編> C#で簡易画像編集ソフトをつくる

表示サイズにあわせて描画内容を変更しようとするとPaintイベント関連で修正が必要になります。PictureBox1_Paint(object sender, PaintEventArgs e)メソッドはそのままでいいのですが、そのなかで呼び出されるメソッドを変更する必要があります。

まずは引数としてわたされたビットマップを表示するメソッドShowBitmapメソッドを変更します。

PictureBox.Invalidateメソッドを呼ぶためのInvalidatePictureBoxメソッドを変更します。PictureBox.Invalidateメソッドにわたす引数が変更になります。

表示サイズが変更になると範囲選択されている部分を矩形で囲んで表示するためのDrawBoderRectangleメソッドも変更が必要です。

DrawLine(Graphics g)メソッドは[図形を描画 ⇒ 直線]が選択されているときマウスが移動しているときに描画される確定前の直線の描画をおこなうメソッドです。これも変更が必要です。

同様に[図形を描画 ⇒ 自由曲線]が選択されているときの処理をするメソッド、DrawFreeLine(Graphics g, List points, Pen pen)も変更します。

DrawRectangle(Graphics g)メソッドは確定前の長方形や楕円を描画するためにマウスが移動しているときに呼び出されるメソッドです。これも変更します。

フィールド変更用のグリッパーを表示するメソッドです。