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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 David
11/07/2005 - 11:23 | Informe spam
Gracias Octavio, le voy a echar un vistazo.

"Octavio Hernandez" escribió:

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.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida