C 設定窗體不可拖動

2021-09-24 03:53:30 字數 897 閱讀 1318

設定窗體不可拖動有很多種方式,首先是考慮從視窗屬性中直接進行設定:

測試所用編輯器為vs2012。

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)

但是這裡存在乙個很不友好的問題

就是視窗在拖拽之後會瞬間返回原來的位置。

4,通過過載訊息處理實現。重寫視窗過程函式(wndproc),處理視窗訊息 :

設定一bool變數lockframe

/// /// 禁止拖動窗體

///

///

protected override void wndproc(ref message m)

if (m.msg == 0xa3)

base.wndproc(ref m);

}

5,自己寫乙個hook函式,監聽事件並處理;

6,隱藏視窗的標題欄,然後自己做乙個。

窗體拖動事件

窗體的拖動事件 標題框不顯示 將窗體的邊框和外觀屬性 formborderstyle設為none 拖動方法如下 為窗體新增乙個私有域 private system.drawing.point mousepoint 為窗體新增滑鼠按下事件 注意對滑鼠按鍵進行篩選 private void mainfo...

拖動檔案到窗體

你一定要在視窗初始化時,允許拖放,才不會出現禁止標誌,如下 允許檔案拖放 dragacceptfiles true 當有檔案拖入你的視窗時會響應這個函式 afx msg void ondropfiles hdrop hdropinfo 你只要過載視窗中的這個函式,get file number in...

拖動無邊框窗體

frm main.cs 1 using system 2using system.collections.generic 3using system.componentmodel 4using system.data 5using system.drawing 6using system.linq ...