1. 程式人生 > >winform去掉視窗中的放大,縮小,關閉按鈕,再重新設計關閉縮小按鈕

winform去掉視窗中的放大,縮小,關閉按鈕,再重新設計關閉縮小按鈕

將formborderstyle設定為 None

這時候的視窗是無邊框的,而且執行的時候是不能進行移動。

解決方案:

1.新增滑鼠按下事件;

2.新增滑鼠移動事件;

3.新增滑鼠鬆開事件;

附上三個事件的程式碼:

 bool formMove = false;//窗體是否移動
        Point formPoint;//記錄窗體的位置

 /// <summary>
        /// 滑鼠按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void panel_MouseDown(object sender, MouseEventArgs e)
        {
            formPoint = new Point();
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                formPoint = new Point(xOffset, yOffset);
                formMove = true;//開始移動
            }
        }

 /// <summary>
        /// 滑鼠移動事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (formMove == true)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(formPoint.X, formPoint.Y);
                Location = mousePos;
            }
        }

 

 /// <summary>
        /// 滑鼠鬆開事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)//按下的是滑鼠左鍵
            {
                formMove = false;//停止移動
            }
        }