I would go about this in a slightly different way. First of all, I would setup the bitmap variable as a private form level variable and in the forms onload event, load the graphic into it. I would then throw on a panel onto the form and set it to invisible initially. In the mousemove event I would set the left and top properties of the panel to the mouse coordinates and lastly I would setup an Paint method for the panel which will draw the picture onto the panel.
The code would look something like this...
CODE
Public Class Form1
' Private member variable to hold our graphic (instead of reloading it each time, more efficient)
Private myBitmap As System.Drawing.Bitmap
' Upon loading of the form, load up our bitmap
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myBitmap = New System.Drawing.Bitmap("C:\mypic.jpg")
End Sub
' When we move across the form, set our invisible panel to visible and move the panel using its left
' and top properties, but about 3 pixels off so that it won't fail to move when we attempt to move the mouse
' backwards onto the panel.
Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
mypanel.Visible = True
mypanel.Left = e.X + 3
mypanel.Top = e.Y + 3
End Sub
' Using our graphics object of the panel, we paint on the picture into the top left corner and size it accordingly
Private Sub mypanel_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles mypanel.Paint
e.Graphics.DrawImage(myBitmap, 1, 1, 25, 25)
End Sub
End Class
As you can see it is not too hard and can easily be extended in the future for changing the picture on the fly and even during movement of the mouse. You could have a rainbow of pictures if you like. My panel is named "mypanel" and as you can see we move the panel with the picture on it around.
Hope this works for you and gets what you were want to go.
Enjoy!
"At DIC we be picture panel moving code ninjas!"