Come posso cancellare Cursor.Clip in C # e consentire al cursore di spostarsi di nuovo liberamente?
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.
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)
?