窗體關閉按鈕

2022-03-24 05:45:48 字數 869 閱讀 3840

在我們平時用的程式中,有很多已經把窗體右上方的關閉按鈕的預設關閉改變了,當然,這其中有很多都是自己繪製,然後再寫進去**,但如果想留用windows的自帶的那個按鈕也實現這個效果其實也是很簡單的。

首先增加乙個窗體關閉事件

this.formclosing += new system.windows.forms.formclosingeventhandler(login_formclosing);

然後新增他的委託函式 login_formclosing(object sender, system.windows.forms.formclosingeventargs e)

e 中有兩個屬性是可以用到的,乙個是closereason,這個屬性值表示窗體關閉的原因,另乙個是cancel,這個屬性表示是否取消關閉窗體,為true時取消,為false時不取消。

現在要實現的是單擊窗體關閉按鈕時窗體並不關閉,而是最小化,然後不在工作列中顯示,當單擊我們給定的關閉按鈕時才關閉。

我用了乙個「全域性變數」來判斷單擊的是否是我們設定的關閉按鈕: private bool close = false; 當close 為true時,關閉窗體。

void

login_formclosing(

object

sender, system.windows.forms.formclosingeventargs e)

else

}自定義關閉按鈕的單擊事件:

1private

void

button2_click(

object

sender, eventargs e)

2這樣幾行**就實現了如迅雷,有道,卡巴斯基等軟體的類似的簡單功能,其實主要目的是為了防止使用者誤關閉應用程式。

C 遮蔽窗體關閉按鈕

dllimport user32.dll private static extern intptr getsystemmenu intptr hwnd,uint32 brevert dllimport user32.dll private static extern uint32 removemen...

禁用窗體的關閉按鈕

dllimport user32.dll public static extern int getsystemmenu int hwnd,int brevert dllimport user32.dll public static extern int removemenu int hmenu,in...

C WinForm開發 取消窗體關閉按鈕(整理)

這兩天要弄個東西,然後不想要winform自帶的關閉窗體的按鈕,想用自己定義的乙個窗體按鈕。又不希望通過更改form.formborderstyle屬性的方法來實現,還想留著那個窗體欄可以對窗體進行移動等。其實禁用最小化 最大化按鈕的直接可以在winform的屬性面板中設定了,而這個禁用關閉按鈕的就...