(10101101)173/C#2009. 3. 15. 16:48
윈도우를 이동시키기 위해서는 맨위에 타이틀 부분은 드래그 해야 하지만 폼을 드래그해 이동시킬 수 있습니다. 이를 구현하는 방법은 두게의 이벤트가 필요 합니다.

선행 조건으로 마우스 위치를 기억할 포인터를 선언 합니다.
private Point mousePoint
그리고 MouseDown 이벤트를 등록해야 합니다.
private void Form_MouseDown(object sender, MouseEventArgs e)
{
	mousePoint = new Point(e.X, e.Y);
}
MouseDown이벤트 다음 MouseMove이벤트를 등록 합니다.
private void Form_MouseMove(object sender, MouseEventArgs e)
{
	if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
	{
		Location = new Point(this.Left - (mousePoint.X - e.X),
			 this.Top - (mousePoint.Y - e.Y));
	}
}
그리고 컴파일해서 폼을 클릭해 드래그 해보면 폼이 움직이는걸 확인하실 수 있습니다.
원리는 MouseDown이벤트로 현제 마우스에 위치를 가져오고 MouseMove이벤트에서 창위치에서 마우스가 움직인 만큼의 거리를 계산하게 됩니다. 그럼 그만큼 창이 이동하게 됩니다.
Posted by Special Alex