C# winform 窗體去掉標題title,並設定窗體可以移動
1.去掉winform窗體的標題欄:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
說明:當FormBorderStyle樣式被設定為None模式時,該窗體是無法在移動了。若是要移動窗體,可以通過設定窗體滑鼠按下事件和滑鼠移動監聽事件來實現窗體的移動。
2.實現窗體移動的監聽事件:
1)MouseDown滑鼠按下時監聽事件:滑鼠點選窗體時,記錄下點選的座標位置。
2)MouseMove滑鼠移動過程中監聽:滑鼠拖拉窗體移動是,改變窗體座標位置。
程式碼:
int x,y; //滑鼠點選座標位置
this.MouseDown += FrmLogin_MouseDown; //設定滑鼠按下時監聽事件 this.MouseMove += FrmLogin_MouseMove; //設定滑鼠移動是監聽事件
//滑鼠移動監聽事件,改變窗體座標位置,實現窗體移動效果
void FrmLogin_MouseMove(object sender, MouseEventArgs e) { if(e.Button == System.Windows.Forms.MouseButtons.Left) { this.Location = new Point(this.Location.X + (e.X - x),this.Location.Y + (e.Y - y)); } }
//滑鼠按下監聽事件,記錄滑鼠按下時的座標
void FrmLogin_MouseDown(object sender, MouseEventArgs e) { if(e.Button == System.Windows.Forms.MouseButtons.Left) { x = e.X; y = e.Y; } }
說明:滑鼠點選窗體空白地方才有效,如果點選子窗體的子控制元件上,焦點會被子控制元件攔截,無法傳遞到窗體的監聽事件,窗體無法移動。比如,在窗體中新增一個panel,並設定panel為fill模式,這時再點選窗體時,panel會攔截掉滑鼠事件,點選事件將無法傳遞到窗體的監聽事件中。但是,可以通過同樣的方法來對panel控制元件設定監聽事件,從而實現窗體的移動效果。