将矩形移动到与矩形相同的鼠标位置?
问题描述:
我需要移动(绘制)与矩形相同的鼠标位置的矩形。有一个代码,鼠标位于矩形的中间。将矩形移动到与矩形相同的鼠标位置?
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();
}
}
答
您需要将鼠标位置存储在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();
}
}
问题应该有一个问号 – Snowbear