用相同的鼠标位置移动矩形
本文关键字:移动 位置 鼠标 | 更新日期: 2023-09-27 18:16:00
我需要用相同的鼠标位置来移动(绘制)矩形。有一个代码,鼠标在矩形的中间。
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();
}
}