1. 程式人生 > 其它 >C#中移動無邊框窗體

C#中移動無邊框窗體

為了美觀,自己用Panel做了一個標題欄,如下圖白色的上邊欄,直接貼程式碼

        /// <summary>
        /// 滑鼠左鍵按下
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void panel3_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown 
= true; FormLocation = this.Location; mouseOffset = Control.MousePosition; } } /// <summary> /// 滑鼠移動 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private
void panel3_MouseMove(object sender, MouseEventArgs e) { int x = 0; int y = 0; if (isMouseDown) { Point pt = Control.MousePosition; x = mouseOffset.X - pt.X; y = mouseOffset.Y - pt.Y;
this.Location = new Point(FormLocation.X - x, FormLocation.Y - y); } } /// <summary> /// 滑鼠左鍵鬆開 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void panel3_MouseUp(object sender, MouseEventArgs e) { isMouseDown = false;//全域性變數防止滑鼠沒有按下左鍵窗體也跟著移動 }