Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I clear Cursor.Clip in C# and allow the cursor to move freely again?

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.

like image 960
Crazyd22 Avatar asked Dec 08 '22 05:12

Crazyd22


2 Answers

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

Cursor.Clip = new Rectangle();

It works regardless of the situation.

like image 83
DiamondDrake Avatar answered Dec 10 '22 02:12

DiamondDrake


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

like image 25
Konamiman Avatar answered Dec 10 '22 03:12

Konamiman