2009-11-26 9 views
3

Я пытаюсь заблокировать курсор в форме, это приложение для ящика для ящика, я пытаюсь выставить курсор, чтобы он сбросил Cursor.Clip, когда они разблокируют его.Как очистить Cursor.Clip в C# и позволить курсору свободно перемещаться?

До сих пор у меня есть:

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

Это работает отлично.

Но я не могу понять, как очистить клип, когда они его разблокируют. Я пробовал Cursor.Dispose(); Но это не работает.

Любые идеи? Спасибо.

ответ

1

ClipRectangle который содержит размеры экрана.

Cursor.Clip = Screen.PrimaryScreen.Bounds; 

Конечно, это не сработает с настройками двух мониторов, но вы получите эту идею.

+0

Ницца, это работает, спасибо. – Crazyd22

1

Попробуйте это: при запуске приложения получите значение Cursor.Clip и сохраните его как незафиксированное значение. Затем, когда вы хотите сбросить клип, назначьте незанятое значение.

UPDATE: In this page он говорит, что отцепить курсор в VB.NET, достаточно сделать Cursor.Clip=Nothing. Но это странно, так как Rectangle является структурой и поэтому не может быть установлен в null. Так в C#, может быть, это будет Cursor.Clip=Rectangle.Empty или Cursor.Clip=default(Rectangle)?

+0

Действительно хорошая идея, но она не работает :( – Crazyd22

9

на самом деле идея заключается в том, чтобы просто установить его на новый прямоугольник

Cursor.Clip = new Rectangle(); 

Он работает независимо от ситуации.