2011-02-14 50 views
32

比方说,我有一个控制,它的位置是相对于其父。如果它嵌入多次并且是主要形式的伟大伟大的孙辈,我怎么能确定它在我的整个屏幕上的位置,而不仅仅是它在直接父母中的位置?这是为了通过屏幕截图打印特定的控件(因为对于某些控件,DrawToBitmap无法正常工作)。获取控件相对于整个屏幕的位置?

回答

80

您正在寻找的PointToScreen method

Point location = someControl.PointToScreen(Point.Empty); 
+2

注意PointToScreen需要_client AREA_坐标,所以使用例如在窗体上这个代码就不会给出正确的结果。 – rymdsmurf

+3

@rymdsmurf不知道我是否正确理解你,但如果你在'Form'(如'myForm.PointToScreen')上使用它,并且你有正确的坐标(来自'control.Location'),它会给你正确的坐标屏幕上。 – Artholl

相关问题