DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

マウスポインタの位置の取得と設定

広告

マウスポインタの位置の取得と設定にはCursor.Positionプロパティを使います。マウスポインタの位置の取得だけならばControl.MousePositionプロパティでも可能です。


[VB.NET]
'マウスポインタの位置を取得
Console.WriteLine("マウスポインタのX座標:" + _
    System.Windows.Forms.Cursor.Position.X.ToString())
Console.WriteLine("マウスポインタのY座標:" + _
    System.Windows.Forms.Cursor.Position.Y.ToString())

'マウスポインタの位置を画面左上(座標(0,0))にする
Dim p As Point = New Point(0, 0)
System.Windows.Forms.Cursor.Position = p
[C#]
//マウスポインタの位置を取得
Console.WriteLine("マウスポインタのX座標:" + 
    System.Windows.Forms.Cursor.Position.X.ToString());
Console.WriteLine("マウスポインタのY座標:" + 
    System.Windows.Forms.Cursor.Position.Y.ToString());

//マウスポインタの位置を画面左上(座標(0,0))にする
System.Drawing.Point p = new System.Drawing.Point(0, 0);
System.Windows.Forms.Cursor.Position = p;

コントロールの座標で取得、設定する

Cursor.PositionやControl.MousePositionでは画面座標でカーソルの位置を取得できます。これをコントロール上の座標(クライアント座標)に変換するには、Control.PointToClientメソッドを使います。

以下にButton1コントロールを基準とした座標でカーソルの位置を取得するコードを示します。

[VB.NET]
Console.WriteLine( _
    Button1.PointToClient(System.Windows.Forms.Cursor.Position))
[C#]
Console.WriteLine(
    Button1.PointToClient(System.Windows.Forms.Cursor.Position));

Cursor.Positionでは画面座標でカーソルの位置を設定できます。コントロール上の座標で設定するには、Control.PointToScreenメソッドを使って画面座標をクライアント座標に変換する必要があります。

以下にButton1コントロールを基準とした座標で、(10, 10)の位置にカーソルを移動させるコードを示します。

[VB.NET]
System.Windows.Forms.Cursor.Position = _
    Button1.PointToScreen(New Point(10, 10))
[C#]
System.Windows.Forms.Cursor.Position = 
    Button1.PointToScreen(new Point(10, 10));
  • 履歴:
  • 2007/1/5 コントロールの座標で取得、設定する方法を追加。