首頁 > 後端開發 > C#.Net教程 > 詳細介紹C#實作關閉子視窗而不釋放子視窗物件的方法分享

詳細介紹C#實作關閉子視窗而不釋放子視窗物件的方法分享

黄舟
發布: 2017-03-27 11:49:19
原創
1997 人瀏覽過

下面小編就為大家帶來一篇C#實作關閉子視窗而不釋放子視窗物件的方法 。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

線上掃描相機的調試過程中,需要開闢調試介面來進行位置的配置。調試結束後,常用的方式是將調試參數保存並在下次啟動時加載。另一種簡單方式是直接使用該參數來執行程式。因此,在後一種情況下,需要實現的功能是:即使關閉調試窗口,其窗口物件也不釋放。除非其主視窗關閉,才銷毀其調試視窗的物件。

1 在主視窗中實例化子視窗

#在主視窗中實例化子視窗,而不是在按鈕中實例化子窗口對象。

Form2 f2 = new Form2();
登入後複製

2 透過按鈕來顯示主視窗

#在按鈕中需要實現的是視窗的顯示

private void Config_Click(object sender, EventArgs e)
    {
      f2.Show();
    }
登入後複製

3 關閉子視窗而不釋放子視窗物件的方法

#經過查詢和實證,修改子視窗中Dispose的方法是可行的。變更如下:

 protected override void Dispose(bool disposing)
    {
      Hide();
      //if (disposing && (components != null))
      //{
      //  components.Dispose();
      //}
      //base.Dispose(disposing);
    }
登入後複製

4 在父視窗關閉時銷毀子視窗對象

由於需要在父視窗關閉是銷毀子視窗對象,因此,在父視窗的關閉動作FormClosed中新增呼叫子視窗f2的銷毀函數

 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
      f2.Close();
    }
登入後複製

子視窗類別中新增的關閉函數如下:

 public void Close()
    {

      this.Dispose();

    }
登入後複製

以上是詳細介紹C#實作關閉子視窗而不釋放子視窗物件的方法分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板