2016-12-22 173 views
0

在C#中,如何获取对象在窗体中相对于主屏幕的位置?如何获得相对于主屏幕的对象位置

我搜索了一点,但我真的很困惑。

我得到的形式,地点和对象的位置和总结,但它是不正确的:

X = this.Location.X + pictureBox1.Location.X; 
Y = this.Location.Y + pictureBox1.Location.Y; 

我也试过这样:

mypoint = pictureBox1.PointToScreen(Point.Empty); 

这:

mypoint =new Point(this.Location.X + pictureBox1.Location.X - Screen.PrimaryScreen.Bounds.Left, 
      this.Location.Y + pictureBox1.Location.Y - Screen.PrimaryScreen.Bounds.Top); 

我想要pictruebox1位置与显示点(0,0)相关。 enter image description here

+2

pictureBox1.PointToScreen(Point.Empty);这应该是一个正确的解决方案。为什么你知道它返回不正确的结果? –

+0

是的你是对的,我的错!我不知道为什么,但我使用表单位置更改事件处理程序,它给了我启动时错误的位置,我使用表单加载,它工作正常。谢谢! – Arta

回答

1

pictureBox1.PointToScreen(Point.Empty);是正确的解决方案。你从位置改变的事件处理程序中弄错了,也许它在表单完全加载之前被提出。

+0

是的你是对的。我用另一种解决方案。 – Arta

相关问题