Wie lösche ich Cursor.Clip in C # und lassen Sie den Cursor wieder frei bewegen?

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

  •  05-07-2019
  •  | 
  •  

Frage

Ich versuche, den Cursor in die Form zu sperren, ist dies für eine Maus Locker Anwendung, Ich versuche, um den Cursor zu entsorgen, damit es die Cursor.Clip zurückgesetzt wird, wenn sie es zu entsperren.

Bisher habe ich:

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

Das funktioniert gut.

Aber ich kann nicht herausfinden, wie Sie den Clip löschen, wenn sie es zu entsperren. Ich habe versucht, Cursor.Dispose(); Aber das funktioniert nicht.

Irgendwelche Ideen? Danke.

War es hilfreich?

Lösung

Set Clip zu einem Rectangle, dass der Bildschirm Dimensionen enthält.

Cursor.Clip = Screen.PrimaryScreen.Bounds;

Natürlich wird dies nicht mit Dual-Monitor-Setups arbeiten, aber Sie bekommen die Idee.

Andere Tipps

eigentlich die Idee ist, setzt es einfach auf ein neues Rechteck

Cursor.Clip = new Rectangle();

Es funktioniert unabhängig von der Situation.

Versuchen Sie folgendes: wenn die Anwendung gestartet wird, um den Wert von Cursor.Clip zu erhalten und es als unclipped Wert speichern. Dann, wenn Sie den Clip zurücksetzen möchten, weisen Sie den unclipped Wert.

UPDATE : Auf dieser Seite es heißt, dass den Cursor in VB.NET unclip, ist es genug Cursor.Clip=Nothing zu tun. Aber das ist seltsam, da Rechteck eine Struktur ist, und somit kann es nicht auf null gesetzt werden. Also in C #, vielleicht wäre es Cursor.Clip=Rectangle.Empty oder Cursor.Clip=default(Rectangle) werden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top