詳細介紹C#實現關閉子視窗而不釋放子視窗對象的方法分享

來源:互聯網
上載者:User
下面小編就為大家帶來一篇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();    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.