윈도우를 이동시키기 위해서는 맨위에 타이틀 부분은 드래그 해야 하지만 폼을 드래그해 이동시킬 수 있습니다. 이를 구현하는 방법은 두게의 이벤트가 필요 합니다.
선행 조건으로 마우스 위치를 기억할 포인터를 선언 합니다.
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이벤트에서 창위치에서 마우스가 움직인 만큼의 거리를 계산하게 됩니다. 그럼 그만큼 창이 이동하게 됩니다.