投稿者 たかくん  (社会人) 投稿日時 2011/10/8 12:17:59
解りにくいと思うので実験プログラムを作りました。
DrawScreen(e.Graphics)とDrawScreen(g)では結果が違います。
何故失敗するのでしょうか?
解る方よろしくお願いします。

Public Class Form1

    Private g As Graphics = Me.CreateGraphics

    Private Picture As Image = My.Resources.Wall5

    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        DrawScreen(e.Graphics)  '<-成功
        'DrawScreen(g)  <-失敗
    End Sub

    Private Sub DrawScreen(ByRef g As Graphics)
        For y As Integer = 0 To 3
            For x As Integer = 0 To 6
                g.DrawImage(Picture, x * Picture.Width, y * Picture.Height, Picture.Width, Picture.Height)
            Next
        Next
        Me.Size = New Size(7 * Picture.Width, 4 * Picture.Height)
    End Sub
End Class