很多時候,在winform的設計下,會遇到新建窗體時不需要用到默認的關閉按鈕的情況,而是用另外設置關閉 button或其他控件來控制窗體的關閉。
之前我遇到這個問題時,問了很多朋友,都沒找到方法,VS的窗體屬性里也沒那一項,在MSDN里也沒有相關的資料。 但后來偶然發現,原來辦法是很簡單的,只需要在初始化窗體的時候不顯示那關閉按鈕就可以了。
具體方法是,加上一句 “ this.ControlBox = false;”。
如下:
public Form1()
{
InitializeComponent();
this.ControlBox = false; // 設置不出現關閉按鈕
}
而對最大最小化按鈕的顯示,則可以在窗體的屬性項里設置即可。
另外,如果需要保留那關閉按鈕的顯示,但又不起作用,則可以加上幾句代碼屏蔽掉它,具體代碼如下:
//禁用窗體的關閉按鈕
private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;
return myCp;
}
}
下面說一下幾個不是只是讓關閉按鈕隱藏但是可以達到類似效果的方法:
1.將ControlBox屬性設為False。這種方法是讓標題欄中的除了標題名以外的其他的全部隱藏,也就是把圖標,最小化、最大化和關閉按鈕全部隱藏。
2.讓關閉按鈕失效,方法是在事件里面找到FormCloseing事件,編輯該事件,在里面寫上一條語句“e.Cancel = true;”,這樣關閉按鈕就失效了,按快捷鍵“Alt+空格+C”也關閉不了,只有用任務管理器關了,或者用一條語句(“Application.Exit();”)關閉該生成的應用程序,用“Alt+F4”也能關閉。
3.將FormBoderstyle屬性設置為None。這種方法是將整個標題欄去掉了。這樣也是用快捷鍵“Alt+空格+C”關閉不了,只有用任務管理器關了,或者用一條語句(“Application.Exit();”)關閉生成的該應用程序,用“Alt+F4”也能關閉。