2011-11-29 128 views
-2

我需要移动(绘制)与矩形相同的鼠标位置的矩形。有一个代码,鼠标位于矩形的中间。将矩形移动到与矩形相同的鼠标位置?

private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     rect.X = e.X - (rect.Width/2); 
     rect.Y = e.Y - (rect.Height/2); 

     rect.Width = rect.Width; 
     rect.Height = rect.Height; 
     pictureBox1.Invalidate(); 
    } 
} 
+2

问题应该有一个问号 – Snowbear

回答

0

您需要将鼠标位置存储在MouseDown处理程序中,并考虑偏移量而不是将其居中。

假设你的坐标(相对于RECT)保存的MouseDown:

private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     rect.X = e.X - downPos.X; 
     rect.Y = e.Y - downPos.Y; 

     rect.Width = rect.Width; 
     rect.Height = rect.Height; 
     pictureBox1.Invalidate(); 
    } 
} 
+0

我存储X,Y鼠标,但我不'吨知道如何使用它们。 – gormit

+0

查看已更新的答案 – Deanna

+0

是的,我忘记了存储相关的cooridanates,谢谢! – gormit