Как мне очистить курсор.Закрепите в C # и снова разрешите курсору свободно перемещаться?

StackOverflow https://stackoverflow.com/questions/1805260

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь зафиксировать курсор в форме, это для приложения для блокировки мыши, я пытаюсь переместить курсор, чтобы он сбросил 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)?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top