Winfrom通过Panel拖动无边框窗体

首先在窗体内部定义需要调用的windows api 以及参数

        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;

其次在Panel的mousedown方法调用api

     private void pnlMove_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                ReleaseCapture();
                SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
            }
            catch (Exception ex)
            {

            }
        }

 

posted @ 2020-08-27 09:36  Hi!宋先生  阅读(246)  评论(0编辑  收藏  举报