在winform程序中有的時候須要暫時關閉窗口並在須要的時候再次調出原來關閉的這個窗口(即關閉的時候不銷燬該窗口的內存)實現方法以下:ide
Form.Designer.cs中有以下方法spa
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }
Form右上角的關閉按鈕被點擊後會自動調用該方法銷燬Form的句柄和佔用內存,所以將其修改爲code
/// <summary> /// 在Form的關閉按鈕按下的時候會調用該方法Hide窗口而不銷燬窗口 /// </summary> protected override void Dispose(bool disposing) { Hide(); }
即可以實如今點擊關閉按鈕後不是真正的銷燬關閉窗口而是將窗口Hide,在須要的時候再次調用該Form的Show()方法就能夠再次調用出該窗口(注意:調用Show()方法只是讓From顯示可是不會被激活到電腦桌面其餘窗口的前面,若是要讓窗口激活到電腦桌面其餘窗口前面的話須要調用Activate()方法)component
可是這樣一來Form就沒法在須要的時候銷燬釋放內存了,能夠採用折中的方法,抄寫原來的Dispose方法爲一個以下方法,在須要銷燬From並釋放內存的時候顯示調用一下這個方法便可orm
/// <summary> /// 在須要銷燬From的時候顯示調用該方法將銷燬Form並釋放佔用內存 /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> public void DisposeForm(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }