VB2008グラフィック:再描画させ消えない直線を引く(Paintイベント)

Paintイベントの実行例サンプルです

グラフィック関連へ



■実行画面
実行するとPaintイベントに入力したコードが実行され、下のPaintBox2に赤線が引かれます。
Button1をクリックすると、上のPaintBox1に青線が引かれます。

この状態でウィンドウを最小化し、次に元のサイズに戻してください。
そうすると、上の青い直線は消えています。

このようにペイントイベント内で実行させないと、再描画されず消えてしまうことが分かります。
再描画のテストフォーム

■実行コード

Public Class Form1
'ピクチャーボックスに直線を引く
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Graphicsクラスのインスタンスを作成
Dim g As Graphics = PictureBox1.CreateGraphics()

'青色の直線を引く
g.DrawLine(Pens.Blue, 50, 0, 100, 100)
'Graphics によって使用されているすべてのリソースを解放
g.Dispose()
End Sub


Private Sub PictureBox2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox2.Paint
'ここではインスタンスを作成しなくてもe.Graphicsを使えばOK
e.Graphics.DrawLine(Pens.Red, 50, 0, 200, 80)
End Sub
End Class


Visual Basic 2008 Express Edition実践入門