Как мне очистить курсор.Закрепите в C # и снова разрешите курсору свободно перемещаться?
Вопрос
Я пытаюсь зафиксировать курсор в форме, это для приложения для блокировки мыши, я пытаюсь переместить курсор, чтобы он сбросил Cursor.Clip
когда они его разблокируют.
До сих пор у меня есть:
Cursor.Clip = new Rectangle(x +8, y +30, Size.Width -16, Size.Height -38);
Это прекрасно работает.
Но я не могу понять, как очистить клип, когда они разблокируют его.Я пытался Cursor.Dispose();
Но это не работает.
Есть какие-нибудь идеи?Спасибо.
Решение
Установите для Clip
значение Rectangle
, которое содержит размеры экрана.
Cursor.Clip = Screen.PrimaryScreen.Bounds;
Конечно, это не будет работать с настройками двух мониторов, но вы поняли.
Другие советы
на самом деле идея состоит в том, чтобы просто установить его в новый прямоугольник
Cursor.Clip = new Rectangle();
Это работает независимо от ситуации.
Попробуй это:когда ваше приложение запустится, получите значение Cursor.Clip
и сохраните его как неограниченное значение.Затем, когда вы захотите сбросить клип, присвойте значение unclipped.
Обновить: На этой странице в нем говорится, что для отсоединения курсора в VB.NET достаточно выполнить Cursor.Clip=Nothing
.Но это странно, поскольку Rectangle - это структура, и поэтому ей нельзя присвоить значение null.Так что в C #, возможно, это было бы Cursor.Clip=Rectangle.Empty
или Cursor.Clip=default(Rectangle)
?