C#
2014.12.15 17:52
폼안의 특정 객체로 폼을 움직이려 할 때
다물칸 주소복사
조회 수 134 추천 수 0 댓글 0
구분 | 팁&트릭 |
---|---|
출처 | 내가작성 |
폼 보더스타일을 None으로 할 경우 이 녀석을 움직이게 할려면?
아래와 같이 하면 된다.
const int WM_SYSCOMMAND = 0x0112; const int SC_FORMMOVE = 0xF012; [System.Runtime.InteropServices.DllImport("User32")] private static extern int ReleaseCapture(); [System.Runtime.InteropServices.DllImport("User32")] private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
우선 위 코드를 폼에 선언한다.
private void frmLogin_MouseDown(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { ReleaseCapture(); SendMessage(this.Handle.ToInt32(), WM_SYSCOMMAND, SC_FORMMOVE, 0); } } private void frmLogin_MouseUp(object sender, MouseEventArgs e) { ReleaseCapture(); }
폼 아무대나 찍어서 움직이면 폼이 움직인다. 특정영역만 찍어서 움직이게 하려면
폼의 특정위치에 라벨이나 이미지 박스를 올려서 폼대신 그 객체의 마우스다운/업 이벤트에 위 코드를 넣으면 된다.