获取鼠标移动的距离

时间:2013-02-18 16:34:58

标签: c# .net winforms mouseevent mousemove

我有一张表格,里面有一个名为Panel的小Player。我怎样才能"链接"面板到用户的鼠标,所以当鼠标移动时它会移动?

我已经订阅Player_MouseMovePlayer.MouseMove个活动,但我无法弄清楚鼠标实际移动了多少。我能想到的唯一方法是拥有这样的:

private Point previousLocation;

private void Player_MouseMove(object sender, MouseEventArgs e)
{
    int differenceX, differenceY;
    differenceX = e.X - previousLocation.X;
    differenceY = e.Y - previousLocation.Y;
    previousLocation = e.Location;
}

这看起来很愚蠢,有一个额外的变量并且每次计算差异。完美的方式就像Player.LinkToCursor();或类似,但如果没有自动化方式,那么至少还有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.aspx我看不到任何可以帮助你做得更好的事情。

但是你可以做一件事:

Point difference = e.Location - (Size)previousLocation;

Vector-arithmetics;)