1,窗口屬性中有locked屬性,設置為true。 (在自己進行編碼的時候並沒能找到這個屬性,貌似只能在窗口設計時進行設置,故此方法無可控性) 2,窗口屬性中有FormBorderStyle屬性,設置為none; 或者在代碼中設置:Form1.ActiveForm.FormBorderStyle = FormBorderStyle.None; 此時為無邊框風格,窗口顯灰,不可縮放不可移動。 然后可以考慮對窗口的位置進行記錄,讓其位置不可改變即可: 3,用一個point結構體記錄窗口位置,在窗口的move或change事件里使其位置不變 private Point point; 在相應的位置設置窗口的初始位置 point=this.location private void Form1_Move(object sender, EventArgs e) { this.Location = point; } 但是這里存在一個很不友好的問題 就是窗口在拖拽之后會瞬間返回原來的位置。 4,通過重載消息處理實現。重寫窗口過程函數(WndProc),處理窗口消息 : 設置一bool變量lockframe protected override void WndProc(ref System.Windows.Forms.Message m) { if (lockframe) { if (m.Msg != 0x0112 && m.WParam != (IntPtr)0xF012) { base.WndProc(ref m); } } else base.WndProc(ref m); }