C#去邊框以及無邊框窗體移動
阿新 • • 發佈:2019-02-19
1.去邊框 :
1) 選中要去除邊框的窗體,按F4調出窗體屬性。
2)在屬性框中找到FormBorderStyle選擇none。
去邊框之前效果
去邊框之後效果
2.去掉邊框後實現對視窗程式的拖動
1)雙擊窗體,進入程式設計介面 新增 using System.Runtime.InteropServices;
在 { InitializeComponent(); } 後新增以下程式碼
[DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); bool beginMove = false;//初始化滑鼠位置 int currentXPosition; int currentYPosition;
2)回到窗體介面,點選
如圖所示:屬性框上部有個小閃電,點選進入 事件頁面
2)分別點選進入MouseDown 、 MouseMove、MouseUp 並分別新增以下程式碼
//獲取滑鼠按下時的位置 private void loginForm_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { beginMove = true; currentXPosition = MousePosition.X;//滑鼠的x座標為當前窗體左上角x座標 currentYPosition = MousePosition.Y;//滑鼠的y座標為當前窗體左上角y座標 } }
//獲取滑鼠移動到的位置 private void loginForm_MouseMove(object sender, MouseEventArgs e) { if (beginMove) { this.Left += MousePosition.X - currentXPosition;//根據滑鼠x座標確定窗體的左邊座標x this.Top += MousePosition.Y - currentYPosition;//根據滑鼠的y座標窗體的頂部,即Y座標 currentXPosition = MousePosition.X; currentYPosition = MousePosition.Y; } }
//釋放滑鼠時的位置
private void loginForm_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
currentXPosition = 0; //設定初始狀態
currentYPosition = 0;
beginMove = false;
}
}
3.測試你的窗體程式吧