¿Cómo mover un control en mousemove en tiempo de ejecución?
Tengo una aplicación WinForm, estoy tratando de mover una pictureBox en un formulario usandoMouseMove Event
, pero no puedo averiguar cuál es el cálculo correcto que debo hacer en MouseMove, cuando hago la primera función de pictureBox, su ubicación cambia de forma insensata y luego, al moverla, la ubicación de pictureBox se mueve correctamente.
Es un nombre de panelOuterPanel
que contiene el cuadro de imagenpicBox
, aquí el código estoy usando:
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: el objetivo es mover la imagen después de acercarse, como el visor de fotos de Windows
Actualizar : ConvertFromChildToForm
método
private Point ConvertFromChildToForm(int x, int y,Control control)
{
Point p = new Point(x, y);
control.Location = p;
return p;
}