¿Cómo puedo borrar Cursor.Clip en C # y permitir que el cursor se mueva libremente de nuevo?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy tratando de bloquear el cursor en el formulario, esto es para una aplicación de bloqueo de mouse, estoy tratando de colocar el cursor para que reinicie Cursor.Clip cuando lo desbloqueen.

Hasta ahora tengo:

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

Eso funciona bien.

Pero no puedo imaginar cómo borrar el clip cuando lo desbloquean. He intentado Cursor.Dispose (); pero eso no funciona.

¿Alguna idea? Gracias.

¿Fue útil?

Solución

Establezca Clip en un Rectangle que contiene las dimensiones de la pantalla.

Cursor.Clip = Screen.PrimaryScreen.Bounds;

Por supuesto, esto no funcionará con configuraciones de monitores duales, pero entiendes la idea.

Otros consejos

en realidad, la idea es simplemente configurarlo en un nuevo rectángulo

Cursor.Clip = new Rectangle();

Funciona independientemente de la situación.

Intente esto: cuando se inicie su aplicación, obtenga el valor de Cursor.Clip y guárdelo como el valor sin recortar. Luego, cuando desee restablecer el clip, asigne el valor no recortado.

ACTUALIZACIÓN : En esta página dice que para soltar el cursor en VB.NET, basta con hacer Cursor.Clip = Nothing . Pero esto es extraño, ya que Rectangle es una estructura y, por lo tanto, no se puede establecer en nulo. Entonces, en C #, tal vez sería Cursor.Clip = Rectangle.Empty o Cursor.Clip = default (Rectangle) ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top