tags:

views:

398

answers:

3

Hey, I am trying to lock the cursor into the form, this is for a mouse locker application, I am trying to dispose the cursor so it will reset the Cursor.clip when they unlock it.

So far I have: Cursor.Clip = new Rectangle(x +8, y +30, Size.Width -16, Size.Height -38);

That works fine.

But I cannot figure out how to clear the clip when they unlock it. I have tried Cursor.Dispose(); But that doesn't work.

Any ideas? Thanks.

A: 

Set Clip to a Rectangle that contains the screen's dimensions.

Cursor.Clip = Screen.PrimaryScreen.Bounds;

Of course, this won't work with dual monitor setups, but you get the idea.

nasufara
Nice, this works, thanks.
Crazyd22
A: 

Try this: when your application starts, get the value of Cursor.Clip and save it as the unclipped value. Then when you want to reset the clip, assign the unclipped value.

UPDATE: In this page it says that to unclip the cursor in VB.NET, it is enough to do Cursor.Clip=Nothing. But this is strange since Rectangle is a structure and thus it can't be set to null. So in C#, maybe it would be Cursor.Clip=Rectangle.Empty or Cursor.Clip=default(Rectangle)?

Konamiman
Really good idea but it doesn't work :(
Crazyd22
A: 

actually the idea is to just set it to a new rectangle

Cursor.Clip = new Rectangle();

It works regardless of the situation.

DiamondDrake