본문 바로가기
다물칸 주소복사
조회 수 134 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
구분 팁&트릭
출처 내가작성

폼 보더스타일을 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();
        }


폼 아무대나 찍어서 움직이면 폼이 움직인다. 특정영역만 찍어서 움직이게 하려면

폼의 특정위치에 라벨이나 이미지 박스를 올려서 폼대신 그 객체의 마우스다운/업 이벤트에 위 코드를 넣으면 된다.