禁用Alt F4關閉窗體的一些常用方法

2022-02-23 17:08:02 字數 1400 閱讀 9117

我在「多執行緒:c#.net中使用backgroundworker在模態對話方塊中顯示進度條」一文中介紹了如何創造乙個能實時顯示程式處理進度的對話方塊,為了讓該對話方塊看起來更加逼真,除了要將窗體的的formborderstyle屬性設為fixeddialog,將maximizebox和minimizebox設為false,將controlbox設為false外,還需要遮蔽alt + f4組合鍵以防止使用者關閉對話方塊。遮蔽alt + f4的方法有很多,這裡列出了乙個比較簡單而奏效的方法。

1. 捕獲窗體的keydown事件

給窗體新增keydown事件,然後加入下面的**:

1private

void

form2_keydown(

object

sender, keyeventargs e)27

}**中判斷當前使用者是否按下了alt + f4組合鍵,如果是則執行e.handled = true用於指示事件已經被成功執行,從而遮蔽了系統的alt + f4功能。

2. 改寫窗體的closing事件

給窗體新增closing事件,然後加入下面的**:

1public

void

form2_formclosing(

object

sender, formclosingeventargs e)

2當窗體被關閉時(使用者點選窗體右上角的關閉按鈕或通過程式呼叫窗體的close()方法)關閉動作會被取消,那麼如何才能通過程式來關閉窗體呢?可以在關閉窗體的**前去掉窗體的closing事件,如:

1this

.formclosing 

-=new

system.windows.forms.formclosingeventhandler(

this

.form1_formclosing);

2this

.close();

當然,你也可以選擇不關閉窗體而只是隱藏它,這樣該窗體不會在記憶體中被登出。上面兩行**只能在窗體內部執行,如果你想實現在父窗體中通過程式關閉子窗體,可以在子窗體中新增乙個public型別的方法,將上面兩行**加入到方法中,然後在父窗體中呼叫子窗體的這個方法。如:

主窗體:

1form2 frm 

=new

form2();

2frm.closewindow();

子窗體:

1private

void

form2_formclosing(

object

sender, formclosingeventargs e)25

6public

void

closewindow()

73. 呼叫com組建或全域性鉤子

mysql的一些基本指令 mysql 一些常用指令

登陸 1 mysql u root p 登陸,輸入root密碼 退出登陸 mysql exit mysql 為所有ip授權 mysql grant all privileges on to root identified by 123456 with grant option 為單一ip授權 就是想...

Winform窗體的一些設定

設定winform窗體上預設的按鈕為enter或esc鍵,只需設定窗體的acceptbutton和cancelbutton兩個屬性。如果是asp.net頁面只需設定form表單的defaultbutton屬性。在c windows form程式中新增托盤可以使用notifyicon控制項,使程式不顯...

一些需要禁用的PHP危險函式

passthru 功能描述 允許執行乙個外部程式並回顯輸出,類似於 exec 危險等級 高 exec 功能描述 允許執行乙個外部程式 如 unix shell 或 cmd 命令等 危險等級 高 system 功能描述 允許執行乙個外部程式並回顯輸出,類似於 passthru 危險等級 高 chroo...