Arrastrar un control en una determinada area

08/07/2005 - 16:11 por David | Informe spam
Hola a todos, tengo 2 controles en un formulario, un panel con forma de
cuadrado y en el centro de este panel he metido un picturebox con forma de
pelota. La idea es practicamente la de simular un Joystick, es decir, cuando
pinche sobre la pelota me gustaria arrastrarla a cualquiera de los lados del
panel. Estoy intentando mover la pelota de esta forma:

private void pctBola_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
bMoverCamara=true;

}

private void pctBola_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
//la pelota regresa al
centro del panel
bMoverCamara=false;
pctBola.LeftV;
pctBola.Topb;
}



private void pctBola_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (bMoverCamara==true)
{
pctBola.Left=e.X;
pctBola.Top=e.Y;
}
}

private void panel1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (bMoverCamara==true)
{
pctBola.Left=e.X;
pctBola.Top=e.Y;
}
}



Pero no funciona como esperaba, alguna idea de como hacer esto?

Gracias.
 

Leer las respuestas

#1 Octavio Hernandez
08/07/2005 - 20:32 | Informe spam
David,

Normalmente para tareas de ese tipo hay que usar doble buferización, echa un
vistazo a este artículo:

http://www.microsoft.com/spanish/ms...art197.asp

Slds - Octavio

"David" escribió en el mensaje
news:
Hola a todos, tengo 2 controles en un formulario, un panel con forma de
cuadrado y en el centro de este panel he metido un picturebox con forma de
pelota. La idea es practicamente la de simular un Joystick, es decir,
cuando
pinche sobre la pelota me gustaria arrastrarla a cualquiera de los lados
del
panel. Estoy intentando mover la pelota de esta forma:

private void pctBola_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
bMoverCamara=true;

}

private void pctBola_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
//la pelota regresa al
centro del panel
bMoverCamara=false;
pctBola.LeftV;
pctBola.Topb;
}



private void pctBola_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (bMoverCamara==true)
{
pctBola.Left=e.X;
pctBola.Top=e.Y;
}
}

private void panel1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (bMoverCamara==true)
{
pctBola.Left=e.X;
pctBola.Top=e.Y;
}
}



Pero no funciona como esperaba, alguna idea de como hacer esto?

Gracias.

Preguntas similares