我有一张表格,里面有一个名为Panel
的小Player
。我怎样才能"链接"面板到用户的鼠标,所以当鼠标移动时它会移动?
我已经订阅Player_MouseMove
到Player.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();
或类似,但如果没有自动化方式,那么至少还有更好的方法吗?
答案 0 :(得分:5)
看http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.aspx我看不到任何可以帮助你做得更好的事情。
但是你可以做一件事:
Point difference = e.Location - (Size)previousLocation;
Vector-arithmetics;)