Comment effacer Cursor.Clip en C # et permettre au curseur de se déplacer librement à nouveau?

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

  •  05-07-2019
  •  | 
  •  

Question

J'essaie de verrouiller le curseur dans le formulaire. Il s'agit d'une application de verrouillage de la souris. J'essaie de disposer le curseur pour qu'il réinitialise le Cursor.Clip lorsqu'ils le déverrouillent.

Jusqu'à présent, j'ai:

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

Cela fonctionne bien.

Mais je ne peux pas comprendre comment effacer le clip quand ils le déverrouillent. J'ai essayé Cursor.Dispose (); mais cela ne fonctionne pas.

Des idées? Merci.

Était-ce utile?

La solution

Définissez Clip sur un Rectangle contenant les dimensions de l'écran.

Cursor.Clip = Screen.PrimaryScreen.Bounds;

Bien sûr, cela ne fonctionnera pas avec les configurations à double moniteur, mais vous avez l’idée.

Autres conseils

en fait, l’idée est de simplement définir un nouveau rectangle

Cursor.Clip = new Rectangle();

Cela fonctionne quelle que soit la situation.

Essayez ceci: au démarrage de votre application, obtenez la valeur Cursor.Clip et enregistrez-la en tant que valeur non extraite. Ensuite, lorsque vous souhaitez réinitialiser le clip, attribuez la valeur non extraite.

MISE À JOUR : Dans cette page , il est indiqué que pour extraire le curseur dans VB.NET, il suffit de faire Cursor.Clip = Nothing . Mais ceci est étrange puisque Rectangle est une structure et qu’elle ne peut donc pas être définie sur null. Donc, en C #, ce serait peut-être Cursor.Clip = Rectangle.Empty ou Cursor.Clip = default (Rectangle) ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top