How do I clear Cursor.Clip in C# and allow the cur

2019-07-04 09:12发布

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.

标签: c# cursor clip
3条回答
smile是对你的礼貌
2楼-- · 2019-07-04 09:38

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

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-07-04 09:44

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.

查看更多
姐就是有狂的资本
4楼-- · 2019-07-04 09:50

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

Cursor.Clip = new Rectangle();

It works regardless of the situation.

查看更多
登录 后发表回答