我正在开发一个 WinForms 应用程序,需要记录 MouseDown 和 MouseUp 事件的位置。我的问题是事件发生在不同的控件上,因此它们的坐标系不匹配(我需要的只是拖动量)。我尝试添加发送控件的位置,但它仍然无法正常工作。
有一个简单的解决方案吗?
我正在开发一个 WinForms 应用程序,需要记录 MouseDown 和 MouseUp 事件的位置。我的问题是事件发生在不同的控件上,因此它们的坐标系不匹配(我需要的只是拖动量)。我尝试添加发送控件的位置,但它仍然无法正常工作。
有一个简单的解决方案吗?
您可以为此目的使用PointToScreen方法。您的鼠标处理程序代码可能如下所示:
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
Control control = (Control) sender;
Point pointOnScreen = control.PointToScreen(new Point(e.X, e.Y));
...
}