C#實現(xiàn)關(guān)閉子窗口而不釋放子窗口對象的方法
在線掃描相機(jī)的調(diào)試過程中,需要開辟調(diào)試界面來進(jìn)行位置的配置。調(diào)試結(jié)束后,一種常用的方式是將調(diào)試參數(shù)保存并在下次啟動時加載。另一種簡單方式是直接使用該參數(shù)運(yùn)行程序。因此,在后一種情況下,需要實現(xiàn)的功能是:即使關(guān)閉調(diào)試窗口,其窗口對象也不釋放。除非其主窗口關(guān)閉,才銷毀其調(diào)試窗口的對象。
1 在主窗口中實例化子窗口
在主窗口中實例化子窗口,而不是在按鈕中實例化子窗口對象。
Form2 f2 = new Form2();
2 通過按鈕來顯示主窗口
在按鈕中需要實現(xiàn)的是窗口的顯示
private void Config_Click(object sender, EventArgs e)
{
f2.Show();
}
3 關(guān)閉子窗口而不釋放子窗口對象的方法
經(jīng)查詢和實證,修改子窗口中Dispose的方法是可行的。更改如下:
protected override void Dispose(bool disposing)
{
Hide();
//if (disposing && (components != null))
//{
// components.Dispose();
//}
//base.Dispose(disposing);
}
4 在父窗口關(guān)閉時銷毀子窗口對象
由于需要在父窗口關(guān)閉是銷毀子窗口對象,因此,在父窗口的關(guān)閉動作FormClosed中添加調(diào)用子窗口f2的銷毀函數(shù)。
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
f2.Close();
}
子窗口類中添加的關(guān)閉函數(shù)如下:
public void Close()
{
this.Dispose();
}
以上這篇C#實現(xiàn)關(guān)閉子窗口而不釋放子窗口對象的方法 就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#如何正確實現(xiàn)一個自定義異常Exception
這篇文章主要為大家詳細(xì)介紹了C#如何正確實現(xiàn)一個自定義異常Exception,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09
在WPF中合并兩個ObservableCollection集合
這篇文章介紹了在WPF中合并兩個ObservableCollection集合的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

