我有一个 WinForm 应用程序,我正在尝试使用 移动 Form 中的图片框MouseMove Event,但我不知道在 MouseMove 上应该做的正确计算是什么,当我第一次使用图片框时,它的位置会以一种毫无意义的方式发生变化在移动图片框位置时正确移动。
OuterPanel这是一个包含图片框的面板名称picBox,这里是我使用的代码:
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point p = OuterPanel.PointToClient(MousePosition);
picBox.Location = this.PointToClient(p);
}
}
PS:目标是放大后的移动图像,如Windows照片查看器

更新:ConvertFromChildToForm方法
private Point ConvertFromChildToForm(int x, int y,Control control)
{
Point p = new Point(x, y);
control.Location = p;
return p;
}