我正在开发一个图像查看器的Windows应用程序。该程序包含加载图片的主要表格和另一种动态加载swf文件的表格 我的应用程序的工作是这样的:当鼠标点击主窗体上的pictureBox时,将创建一个对象(第二种形式的类型),并且应该找到正确的位置。
我有问题要找到正确的位置。怎么会这样呢? 谢谢你的帮助
答案 0 :(得分:2)
表单上子控件的位置在子坐标中给出。换句话说,在相对于父表单的坐标中。
表单的位置在屏幕坐标中给出,因为它们的父级是整个屏幕。
在Location
属性的不同重载的文档中调用了这个。
Control.Location
:获取或设置控件左上角相对于其容器左上角的坐标。
Form.Location
:获取或设置表示屏幕坐标中表单左上角的Point。
因此,您需要将表单A上PictureBox的位置从子坐标转换为屏幕坐标,然后您可以使用这些屏幕坐标来设置表单B的位置。
要在WinForms中执行此操作,请调用Control.PointToScreen
方法:
Point childCoords = myPictureBox.Location;
Point screenCoords = myPictureBox.PointToScreen(childCoords);
myOtherForm.Location = screenCoords;