投稿者 あにす  (社会人) 投稿日時 2009/2/6 03:19:26
こんな感じで。
描画するだけだと消えてしまうので、描画する内容は常に自分で管理しないといけないんですよね。
WPFだとそこら辺はかなり楽になってるんですけどねー。
Public Class Form1
    Dim sp, ep As Point
    Dim lines As New List(Of Point())

    Private Sub paint_MouseDown(ByVal sender As ObjectByVal e As MouseEventArgs) Handles paint.MouseDown
        sp = e.Location
        paint.Invalidate()
    End Sub

    Private Sub paint_MouseMove(ByVal sender As ObjectByVal e As MouseEventArgs) Handles paint.MouseMove
        ep = e.Location
        paint.Invalidate()
    End Sub

    Private Sub paint_MouseUp(ByVal sender As ObjectByVal e As MouseEventArgs) Handles paint.MouseUp
        lines.Add(New Point() {sp, e.Location})
        paint.Invalidate()
    End Sub

    Private Sub paint_Paint(ByVal sender As ObjectByVal e As PaintEventArgs) Handles paint.Paint
        If Control.MouseButtons = Windows.Forms.MouseButtons.Left Then
            e.Graphics.DrawLine(Pens.Red, sp, ep)
        End If
        For Each line As Point() In lines
            e.Graphics.DrawLine(Pens.Red, line(0), line(1))
        Next
    End Sub
End Class