投稿者 るきお  () 投稿日時 2008/8/1 05:53:00
画像をすばやく左右に移動させたいのであればPictureBoxを使わないで直接描画します。 
ただし、これでもそれほど速くなく、もっと速くしたいのであればDirectXの導入を検討します。 
 
以下、直接描画する例です。 
移動量を増やせば一応素早くはなりますが動きが荒くなりますよね。 
他の方からも指摘が出ているように入力方式も見直した方がいいかもしれませんが、とりあえずKeyDownを踏襲しました。 
 
Public Class Form1 
 
    Dim Photo As Image 
    Dim PhotoLocation As Point 
 
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
 
        Select Case e.KeyCode 
            Case Keys.Right 
                PhotoLocation.X += 20 
            Case Keys.Left 
                PhotoLocation.X -= 20 
            Case Else 
                Return 
        End Select 
 
        Me.Invalidate() 
 
    End Sub 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 
        Photo = Image.FromFile("C:\Windows\隅田川.bmp") 
        PhotoLocation = New Point(200, 100) 
        Me.KeyPreview = True 
        Me.DoubleBuffered = True 
        Me.BackColor = Color.Black 
 
    End Sub 
 
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 
 
        e.Graphics.DrawImage(Photo, PhotoLocation) 
 
 
    End Sub 
 
End Class