画像が読み込まれた画像ボックスがあり、画像をクリックしたときに場所(画像ボックス内のx、yなど)を読み取りたい。これは可能ですか?さらに、マウスオーバーしたときにこれらの座標(ポイント)を読み取ることはできますか?
与えられたイベント(マウスクリックとマウスオーバー)を使用する必要があることは知っていますが、マウスポインターがたまたまある座標を読み取る方法がわかりません。
他の答えは正しいですが、私はそれに私のポイントを追加させてください。この目的のために、MouseClick
またはMouseOver
イベントをフックする必要があることを指摘しました。実際には、Coordinates
を取得するためにこれらのイベントをフックする必要はありません。Coordinates
イベント自体でClick
を取得できます。
private void pictureBox1_Click(object sender, EventArgs e)
{
MouseEventArgs me = (MouseEventArgs)e;
Point coordinates = me.Location;
}
上記のコードは、Clickイベントのe
引数がMouseEventArgs
をラップしているため、機能します。キャストして使用するだけです。
X座標とY座標は次のように取得できます。
this.Cursor = new Cursor(Cursor.Current.Handle);
int xCoordinate = Cursor.Position.X;
int yCoordinate = Cursor.Position.Y;
画像ボックス内の座標を取得する場合は、次のコードを使用します。
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
int xCoordinate = e.X;
int yCoordinate = e.Y;
}
私は答えを要約します:
MouseClick
、MouseUp
、およびその他の多くのイベントには、マウスのMouseEventArgs
を含むLocation
があります。
MouseHover
にはありますが、MouseEventArgs
がないため、カーソルの位置が必要な場合は、Coderの例を使用してください。
private void Form1_MouseHover(object sender, EventArgs e)
{
this.Cursor = new Cursor(Cursor.Current.Handle);
int xCoordinate = Cursor.Position.X;
int yCoordinate = Cursor.Position.Y;
}
MouseUpイベントをフックして、MouseEventArgsから場所を取得するのはどうですか?
このような:
private void pictureBox_MouseUp(object sender, MouseEventArgs e)
{
Point mousePointerLocation = e.Location;
}