como mover um controle no mousemove em tempo de execução?
Eu tenho um aplicativo WinForm, estou tentando mover um pictureBox em um formulário usandoMouseMove Event
, mas eu não consigo descobrir qual é o cálculo certo que devo fazer no MouseMove, quando eu em primeiro lugar o pictureBox, a sua localização muda de uma maneira sem sentido, em seguida, em mover o PictureBox Location move-se corretamente.
É um nome de painelOuterPanel
que contém o pictureBoxpicBox
, aqui o código im 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: o objetivo é mover a imagem após o zoom, como o visualizador de fotos do Windows
Atualizar : ConvertFromChildToForm
método
private Point ConvertFromChildToForm(int x, int y,Control control)
{
Point p = new Point(x, y);
control.Location = p;
return p;
}