C#でCursor.Clipをクリアし、カーソルが再び自由に移動できるようにするにはどうすればよいですか?

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

  •  05-07-2019
  •  | 
  •  

質問

カーソルをフォームにロックしようとしています。これはマウスロッカーアプリケーション用です。ロックを解除すると 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)

になります。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top