C#中移動無邊框窗體
阿新 • • 發佈:2022-05-12
為了美觀,自己用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> privatevoid 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;//全域性變數防止滑鼠沒有按下左鍵窗體也跟著移動 }