我有一个装有图片的图片框,我想在单击图像时读取位置(如图片框中的x,y);这可能吗 ?更重要的是,当我鼠标悬停时,我可以读取这些坐标(点数)吗?
我知道我必须使用给定的事件(鼠标单击和鼠标悬停),但不知道如何读取鼠标指针所在的坐标。
答案 0 :(得分:22)
虽然其他答案是正确的,但我要加上我的观点。
您已指出需要为此目的挂钩MouseClick
或MouseOver
个事件。实际上,没有必要将这些事件挂钩以获取Coordinates
,您可以在Coordinates
事件中获得Click
。
private void pictureBox1_Click(object sender, EventArgs e)
{
MouseEventArgs me = (MouseEventArgs)e;
Point coordinates = me.Location;
}
上面的代码可以工作,因为Click事件的e
参数包装MouseEventArgs
你可以投射它并使用它。
答案 1 :(得分:4)
我只是总结答案:
在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;
}
答案 2 :(得分:3)
您可以按如下方式获取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;
}
答案 3 :(得分:1)
挂接MouseUp事件然后从MouseEventArgs获取位置怎么样?
像这样:
private void pictureBox_MouseUp(object sender, MouseEventArgs e)
{
Point mousePointerLocation = e.Location;
}