Succede questo perché l'istruzione che hai usato per disegnare un'ellisse richiede un'area rettangolare che conterrā l'ellisse stessa: in questo caso, la figura verrā disegnata a partire dal punto Cursor.Position.X, Cursor.Position.Y e ( angolo in alto a sinistra del rettangolo) e dimensioni di larghezza e altezza pari a 5 - 5 (un cerchio di diametro 5).
Se vuoi che il cursore rappresenti il centro del cerchio devi giocare con le coordinate del cursore spostandolo di una dimensione pari al raggio nelle due dimensioni.
io farei cosė:
codice:
Public Class Form1
Dim p As New Point
Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
p.X = e.X
p.Y = e.Y
PictureBox1.Refresh()
End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.FillEllipse(Brushes.Black, p.X - 25, p.Y - 25, 50, 50)
End Sub
End Class