user2032433
user2032433

Reputation:

Get the distance of mouse movement

I have a form and inside it I got a small Panel called Player. How can I "link" the panel to user's mouse, so it will move as the mouse moves?

I've already subscribed Player_MouseMove to Player.MouseMove event but I can't figure out how much has the mouse actually moved. Only way I can come up with is to have a such:

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

This seems pretty stupid, having an extra variable and calculating the difference everytime. Perfect way would be like Player.LinkToCursor(); or such, but if there's no automated way, is there atleast a better way?

Upvotes: 2

Views: 3855

Answers (1)

Nolonar
Nolonar

Reputation: 6122

Looking at http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.aspx I can't see anything that would help you get this done any better.

There is however one thing you could do:

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

Vector-arithmetics ;)

Upvotes: 6

Related Questions