C# przesuwanie okien


(Marcin Obala) #1

Witam

Mam kolejny problem. Chce po kliknięciu i przytrzymaniu przycisku w dowolnym miejscu formy mieć możliwość przesuwania go, jednak chciałbym żeby po kliknięciu na labele okno również się przesuwało. Zrobiłem, że gdy klikam gdzieś na formie okno się ładnie przesuwa. Wykorzystałem tą samą metodę dla labeli ale kursor przeskakuje wtedy do lewego górego rogu formy. Gdy klikam w innym miejscu formatki nic się nie dzieje i okno przesuwa się ładnie.

Ogólnie chciałbym żeby po wciśnięciu labelu okno też się przesuwało bez przeskakiwania kursora do rogu forma.

To mój kod.

Pozdrawiam i dzięki za pomoc

bool isMouseDown = false;

Point mouseOffset;


void MainFormMouseMove(object sender, MouseEventArgs e)

{

	if (isMouseDown)

            {

                Point mousePos = Control.MousePosition;

                mousePos.Offset(mouseOffset.X, mouseOffset.Y);

                Location = mousePos;

            }

}



void MainFormMouseUp(object sender, MouseEventArgs e)

{

	if (e.Button == MouseButtons.Left)

            {

              	isMouseDown = false;

          	}

}


void MainFormMouseDown(object sender, MouseEventArgs e)

{

	int xOffset;

            int yOffset;

            if (e.Button == MouseButtons.Left)

            {

               	xOffset = -e.X;

		yOffset = -e.Y;// - SystemInformation.CaptionHeight;

                mouseOffset = new Point(xOffset, yOffset);

                isMouseDown = true;

            }

}

(inż. Piniol) #2

http://social.msdn.microsoft.com/Forums ... 47a7de14a/


(Marcin Obala) #3

Pomogło dzięki