C#Winform實現無邊框窗體滑鼠拖動
阿新 • • 發佈:2018-12-30
在有時候我們為了實現軟體的美觀,我們需要把窗體的邊框隱藏,但是問題也會隨之而來,在屬性中設定了FormBorderStyle應該為None,邊框便可以隱藏,但是我們在使用軟體時卻無法拖動窗體,那麼我們該如何解決這個問題呢。其實程式碼很簡單,只要override WndProc方法便可。在無邊框窗體的程式碼中加入下面的protected override void WndProc(ref Message m)方法便可。
具體程式碼如下:
實現窗體無邊框程式碼為:protected override void WndProc(ref Message m) { switch (m.Msg) { case 0x4e: case 0xd: case 0xe: case 0x14: base.WndProc(ref m); break; case 0x84://滑鼠點任意位置後可以拖動窗體 this.DefWndProc(ref m); if (m.Result.ToInt32() == 0x01) { m.Result = new IntPtr(0x02); } break; case 0xA3://禁止雙擊最大化 break; default: base.WndProc(ref m); break; } }
private void Form1_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;//無邊框
}