12

我有一个加载了图片的图片框,我想在单击图像时读取位置(如图片框内的 x,y 中);这可能吗 ?更重要的是,我可以在鼠标悬停时读取这些坐标(点)吗?

我知道我必须使用给定的事件(鼠标单击和鼠标悬停),但不知道如何读取鼠标指针恰好所在的坐标。

4

4 回答 4

32

虽然其他答案是正确的,但让我补充一下。您已经指出您需要为此目的连接MouseClick或事件。MouseOver实际上,不需要挂钩那些事件来获取Coordinates,您可以获取Coordinatesin justClick事件本身。

private void pictureBox1_Click(object sender, EventArgs e)
{
    MouseEventArgs me = (MouseEventArgs)e;
    Point coordinates = me.Location;
}

上面的代码有效,因为 Click 事件的e参数包装MouseEventArgs了你可以转换它并使用它。

于 2013-08-04T08:35:21.333 回答
5

我只是总结一下答案:

in MouseClickMouseUp以及许多其他事件,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;
  }
于 2013-08-04T08:14:41.107 回答
5

您可以按如下方式获得 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;
}
于 2013-08-04T08:03:39.817 回答
1

连接 MouseUp 事件然后从 MouseEventArgs 获取位置怎么样?

像这样:

private void pictureBox_MouseUp(object sender, MouseEventArgs e)
{
    Point mousePointerLocation = e.Location;
}
于 2013-08-04T07:58:58.107 回答