C# 从其他事件获取数据

C# 从其他事件获取数据,c#,events,picturebox,C#,Events,Picturebox,我们可以得到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();

我们可以得到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();
}
我的问题是我如何从其他事件中获得X协调和Y协调;鼠标单击事件还是我新定义的函数


实际上,我想从FormLoad中获得XCoordinate和Ycoordinate参数。我该怎么做

MouseMove事件正好为您提供鼠标位置。这不包括在其他
事件参数中。您始终可以通过静态方法获取鼠标位置。

静态方法将获取鼠标指针在屏幕上的绝对位置。您可以使用Control.PointToClient对其进行转换,以获取感兴趣控件的本地坐标

如果我没记错的话,有一个警告是MouseEventArgs提供的鼠标位置与消息发布到事件循环时相同,而Control.MousePosition提供的是现在的位置。对于大多数应用程序来说,这种差异可能不是什么大问题。


您可以使用此解决方案在其他事件发生时获取图片框的坐标

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));

谢谢你的建议。请给出你的意见,亲爱的天才,我更新了我的问题。想象一下,我的电脑有两个光标(两个鼠标),我有两个picturebox(picturebox1和picturebox2)。我想从其他事件或函数到达这两个PictureBox的光标位置。private void MoveCursor(){label1.Text=Convert.ToString(新点(pictureBox1.?????)很抱歉,但是你是如何同时拥有两个鼠标和两个光标的?我甚至不知道这是可能的。你怎么知道你需要哪一个鼠标位置?我更新了我的问题我是一个哑巴。想象一下我的电脑有两个光标(两个鼠标),我有两个picturebox(picturebox1和picturebox2)。我想从其他事件或功能中找到这两个picturebox的光标位置。我更新了我的问题我是一个哑巴。想象一下我的计算机有两个光标(两个鼠标),我有两个picturebox(picturebox1和picturebox2)。我想从其他事件或函数中找到这两个picturebox的光标位置。亲爱的Aman,我想告诉你。我在鼠标单击时定义了xCorrdinate=e.X和yCoordinate=e.Y。实际上我想从FormLoad中找到xCoordinate和yCoordinate参数。我该怎么做?我应该在internet上搜索什么?谢谢
pictureBox1.MouseClick += (s, e) => MessageBox.Show(String.Format("Mouse Clicked at X: {0} Y: {1}", e.X, e.Y));