codice:
 
     private void Sposta(string oggettoPadre,string oggettoDaSpostare, int OggettoDaSpostareX, int OggettoDaSpostareY)
        {
            //Se OggettoDaSpostareX e y sono più distanti dell'oggetto padre
            if (OggettoDaSpostareX > Controls[oggettoPadre].Location.X && OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX > Controls[oggettoPadre].Location.X || OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    if (OggettoDaSpostareX > Controls[oggettoPadre].Location.X)
                        OggettoDaSpostareX--;
                    if (OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
                        OggettoDaSpostareY--;
                    for (int i = 0; i < 2700000; i++)
                    { }
                    
                }
            }

            //Se y è più distante dell'oggetto padre e x è uguale
            if (OggettoDaSpostareX == Controls[oggettoPadre].Location.X && OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    OggettoDaSpostareY--;
                    for (int i = 0; i < 2700000; i++)
                    { Controls[oggettoDaSpostare].Refresh(); }
                    
                }
            }

            // Se x è meno distante del contenitore padre e Y è + distante
            if (OggettoDaSpostareX < Controls[oggettoPadre].Location.X && OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX < Controls[oggettoPadre].Location.X || OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    if (OggettoDaSpostareX < Controls[oggettoPadre].Location.X)
                        OggettoDaSpostareX++;
                    if (OggettoDaSpostareY > Controls[oggettoPadre].Location.Y)
                        OggettoDaSpostareY--;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

            //Se x è meno distante dell'oggetto padre e y è uguale
            if (OggettoDaSpostareX < Controls[oggettoPadre].Location.X && OggettoDaSpostareY == Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX < Controls[oggettoPadre].Location.X)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    OggettoDaSpostareX++;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

            //Se x e y sono meno distanti dell'oggetto padre
            if (OggettoDaSpostareX < Controls[oggettoPadre].Location.X && OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX < Controls[oggettoPadre].Location.X || OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    if (OggettoDaSpostareX < Controls[oggettoPadre].Location.X)
                        OggettoDaSpostareX++;
                    if (OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
                        OggettoDaSpostareY++;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

            //Se y è meno distante dell'oggetto padre e x è uguale
            if (OggettoDaSpostareX == Controls[oggettoPadre].Location.X && OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    OggettoDaSpostareY++;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

            // Se x è più distante del contenitore padre e Y è meno distante
            if (OggettoDaSpostareX > Controls[oggettoPadre].Location.X && OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX > Controls[oggettoPadre].Location.X || OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    if (OggettoDaSpostareX > Controls[oggettoPadre].Location.X)
                        OggettoDaSpostareX--;
                    if (OggettoDaSpostareY < Controls[oggettoPadre].Location.Y)
                        OggettoDaSpostareY++;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

            //Se x più meno distante dell'oggetto padre e y è uguale
            if (OggettoDaSpostareX > Controls[oggettoPadre].Location.X && OggettoDaSpostareY == Controls[oggettoPadre].Location.Y)
            {
                while (OggettoDaSpostareX > Controls[oggettoPadre].Location.X)
                {
                    Controls[oggettoDaSpostare].Location = new Point(OggettoDaSpostareX, OggettoDaSpostareY);
                    OggettoDaSpostareX--;
                    for (int i = 0; i < 2700000; i++)
                    { }
                }
            }

        }
Questo è il metodo che sposta l'oggetto .... cmq uso un win form ... Framework 4.0