我在表单上有一个PictureBox。
在表单的Load事件中,我按如下方式创建图形:
imageGraphics = Graphics.FromImage(PictureBox1.Image)
然后,在PictureBox_MouseMove事件中我绘制椭圆:
imageGraphics.FillEllipse(New SolidBrush(brushColor), e.X, e.Y, brushWidth, brushWidth)
无论我尝试什么,它总是使用不正确的坐标。我尝试了e.Location.PointToClient(),PointToScreen()和Cursor.Position。远远超出预期(我需要精确绘制光标所在的位置)。
每当调整窗体大小时(和PictureBox一样,因为它的Anchor属性设置为展开),绘制到光标的相对位置会发生变化。
我有什么遗漏吗?
答案 0 :(得分:1)
这听起来像是PictureBox上的sizeMode错误。尝试使PictureBox图像的大小与PictureBox的大小相同。
答案 1 :(得分:1)
虽然这是1。5年,但获取相对于PictureBox的坐标的正确调用是:
Dim p1 as point=PictureBox1.PointToClient(Windows.Forms.Cursor.Position)
imageGraphics.FillEllipse(New SolidBrush(brushColor), p1.X, p1.Y, brushWidth, brushWidth)
我想,这对将来的某个人有用。