C#でCursor.Clipをクリアし、カーソルが再び自由に移動できるようにするにはどうすればよいですか?
質問
カーソルをフォームにロックしようとしています。これはマウスロッカーアプリケーション用です。ロックを解除すると Cursor.Clip
がリセットされるようにカーソルを破棄しようとしています。
これまでのところ:
Cursor.Clip = new Rectangle(x +8, y +30, Size.Width -16, Size.Height -38);
それは問題なく動作します。
しかし、ロックを解除したときにクリップをクリアする方法がわかりません。
Cursor.Dispose();
を試しましたが、うまくいきません。
アイデアはありますか? ありがとう。
解決
Clip
を、画面のサイズを含む Rectangle
に設定します。
Cursor.Clip = Screen.PrimaryScreen.Bounds;
もちろん、これはデュアルモニター設定では機能しませんが、アイデアは得られます。
他のヒント
実際には、新しい長方形に設定するだけです
Cursor.Clip = new Rectangle();
状況に関係なく機能します。
これを試してください:アプリケーションの起動時に、 Cursor.Clip
の値を取得し、クリップされていない値として保存します。次に、クリップをリセットするときに、クリップされていない値を割り当てます。
更新:このページでは、 VB.NETでカーソルのクリップを解除するには、 Cursor.Clip = Nothing
で十分です。しかし、Rectangleは構造体であり、nullに設定できないため、これは奇妙です。 C#では、 Cursor.Clip = Rectangle.Empty
または Cursor.Clip = default(Rectangle)
?
所属していません StackOverflow