Wie lösche ich Cursor.Clip in C # und lassen Sie den Cursor wieder frei bewegen?
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.
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?