我们可以通过鼠标在图片框上移动获得X和Y点;
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
double Xcoordinate = e.X;
double Ycoordinate = e.Y;
label1.Text = Xcoordinate.ToString();
label2.Text = Ycoordinate.ToString();
}
我的问题如何从其他事件中获取Xcoordinate和Ycoordinate为ex; MouseClick事件或我新定义的函数?
实际上我想从FormLoad中获取XCoordinate和Ycoordinate参数。我怎样才能做到这一点?
答案 0 :(得分:1)
Use Cursor Position property..
private void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
答案 1 :(得分:0)
MouseMove
事件碰巧会给你鼠标位置。这不包含在其他EventArgs
中。您始终可以通过Cursor.Position
获取鼠标位置。
答案 2 :(得分:0)
静态方法Control.MousePosition将获得鼠标指针在屏幕上的绝对位置。您可以使用Control.PointToClient对其进行翻译,以获取感兴趣的控件的局部坐标。
如果我没记错的话,一点需要注意的是MouseEventArgs为您提供了将消息发布到事件循环时的鼠标位置,而Control.MousePosition立即为您提供的位置。对于大多数应用程序来说,这种差异可能不是什么大问题。
答案 3 :(得分:0)
您可以使用此解决方案在其他事件时获取图片框的坐标
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
textBox1.Text = e.X.ToString();
textBox2.Text = e.Y.ToString();
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
textBox1.Text = e.X.ToString();
textBox2.Text = e.Y.ToString();
}
}
或尝试它也
pictureBox1.MouseClick += (s, e) => MessageBox.Show(String.Format("Mouse Clicked at X: {0} Y: {1}", e.X, e.Y));