如何控制外部表单相对于另一个表单上的pictureBox的位置?
本文关键字:表单 何控制 pictureBox 位置 另一个 相对于 控制 外部 | 更新日期: 2023-09-27 18:10:42
我正在开发一个windows应用程序,是图像查看器。该程序包含加载图片的主表单和动态加载swf文件的另一个表单。
我的应用程序的工作是这样的:当鼠标点击在主要形式上的pictureBox一个对象将被创建(第二形式的类型),并应定位在正确的位置。
我有问题得到正确的位置。怎么会这样呢?
谢谢你的帮助
窗体上子控件的位置在子坐标中给出。换句话说,在相对于父窗体的坐标中。
表单的位置以屏幕坐标给出,因为它们的父元素是整个屏幕。
这在Location
属性的不同重载的文档中被调用。
Control.Location
:获取或设置控件左上角相对于其容器左上角的坐标。
Form.Location
:获取或设置以屏幕坐标表示表单左上角的点。
所以你需要将图片框在表单A上的位置从子坐标转换为屏幕坐标,然后你可以使用这些屏幕坐标来设置表单b的位置。
要在WinForms中做到这一点,调用Control.PointToScreen
方法:
Point childCoords = myPictureBox.Location;
Point screenCoords = myPictureBox.PointToScreen(childCoords);
myOtherForm.Location = screenCoords;