Winforms 如何从MouseDown获取全局位置?

Winforms 如何从MouseDown获取全局位置?,winforms,onmousedown,Winforms,Onmousedown,我正在开发WinForms应用程序,需要记录MouseDown和MouseUp事件的位置。我的问题是,事件发生在不同的控件上,因此它们的坐标系不匹配(我只需要拖动的量)。我尝试添加发送控件的位置,但仍然无法正常工作 有简单的解决方法吗?您可以使用此方法。您的鼠标处理程序代码可能如下所示: private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { Control contr

我正在开发WinForms应用程序,需要记录MouseDown和MouseUp事件的位置。我的问题是,事件发生在不同的控件上,因此它们的坐标系不匹配(我只需要拖动的量)。我尝试添加发送控件的位置,但仍然无法正常工作

有简单的解决方法吗?

您可以使用此方法。您的鼠标处理程序代码可能如下所示:

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));

    ...
}
为此,您可以使用该方法。您的鼠标处理程序代码可能如下所示:

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));

    ...
}

这似乎是我想要的,但我仍然有问题。。。在代码的其余部分:B这似乎是我想要做的,但我仍然有问题。。。在代码的其余部分:b