Как переместить элемент управления мыши во время выполнения?

У меня есть приложение WinForm, я пытаюсь переместить pictureBox в форме, используяMouseMove Event, но я не могу понять, какие правильные вычисления я должен сделать для MouseMove, когда я сначала в pictureBox, его местоположение изменяется бессмысленным образом, а затем при перемещении pictureBox местоположение перемещается правильно.

Это название панелиOuterPanel который содержит pictureBoxpicBox, вот код, который я использую:

private void picBox_MouseMove(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        Point p = OuterPanel.PointToClient(MousePosition);
        picBox.Location = this.PointToClient(p);
    }
}

P.S: целью является перемещение изображения после увеличения, как в Windows Photo Viewer

enter image description here

Update : ConvertFromChildToForm метод

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

Ответы на вопрос(3)

Ваш ответ на вопрос