Come posso cancellare Cursor.Clip in C # e consentire al cursore di spostarsi di nuovo liberamente?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Sto cercando di bloccare il cursore nel modulo, questo è per un'applicazione di blocco del mouse, sto cercando di disporre il cursore in modo che reimposti il ?? Cursor.Clip quando lo sbloccano.

Finora ho:

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

Funziona bene.

Ma non riesco a capire come cancellare la clip quando la sbloccano. Ho provato Cursor.Dispose (); ma non funziona.

Qualche idea? Grazie.

È stato utile?

Soluzione

Imposta Clip su un Rectangle che contiene le dimensioni dello schermo.

Cursor.Clip = Screen.PrimaryScreen.Bounds;

Ovviamente, questo non funzionerà con le configurazioni a doppio monitor, ma avrai l'idea.

Altri suggerimenti

in realtà l'idea è semplicemente impostarla su un nuovo rettangolo

Cursor.Clip = new Rectangle();

Funziona indipendentemente dalla situazione.

Prova questo: all'avvio dell'applicazione, ottieni il valore di Cursor.Clip e salvalo come valore non convertito. Quindi, quando si desidera ripristinare la clip, assegnare il valore non convertito.

AGGIORNAMENTO : In questa pagina si dice che per sbloccare il cursore in VB.NET, è sufficiente fare Cursor.Clip = Nothing . Ma questo è strano poiché Rectangle è una struttura e quindi non può essere impostato su null. Quindi in C #, forse sarebbe Cursor.Clip = Rectangle.Empty o Cursor.Clip = default (Rectangle) ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top