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実践入門 |