マウスポインタの座標を取得する (MouseMoveイベントでフォーム上にあるポインタの座標を取得する) - C#
マウスポインタの座標を取得するコードを紹介します。
概要
アプリケーションのフォーム内にあるポインタの座標を取得するコードを紹介します。自分が実装しているアプリケーションであれば、フォーム上でマウスの移動があるとMouseMoveイベントが発生しますので、MouseMoveイベントのイベントハンドラを実装することでマウスポインタの座標を取得できます。
プログラム例
Windowsフォームアプリケーションを作成します。
UI
下図のUIを作成します。
コード
下記のコードを記述します。
MouseMoveイベントハンドラは、フォームデザイナでフォームを選択した状態でウィンドウ右下のプロパティウィンドウの "MouseMove" をダブルクリックします。
コードのテキストエディタ画面に切り替わります。MouseMoveイベントハンドラが作成され、メソッド内にキャレットが移動し編集状態になります。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MousePointerPosition
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = string.Format("Position : {0:d}, {1:d}", e.X, e.Y);
}
}
}
解説
フォーム上をマウスポインタが移動すると、下記のMouseMoveイベントハンドラが実行されます。イベントハンドラ内では、マウスポインタの座標を取得し、label1 の表示文字列に座標値を設定しています。マウスポインタの座標は第二引数のMouseEventArgs オブジェクトに格納されており、XプロパティにマウスのX座標、YプロパティにマウスのY座標が格納されています。
private void FormMain_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = string.Format("Position : {0:d}, {1:d}", e.X, e.Y);
}
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
ウィンドウ内にマウスポインタを移動させると、マウスポインタの座標がラベルに表示されます。
マウスポインタを移動させると座標の数値が変わります。
ウィンドウ内のマウスポインタの座標を取得できました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用