台灣最大程式設計社群網站
線上人數
698
 
會員總數:244676
討論主題:188774
歡迎您免費加入會員
討論區列表 >> C# >> 請問集合編輯器自動生成的物件如何刪除?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問集合編輯器自動生成的物件如何刪除?
價值 : 100 QP  點閱數:279 回應數:2

樓主

獅子
初學者
82 6
340 20
發送站內信

public class My_Component : System.ComponentModel.Component
{
List<Timer> _Items = new List<Timer>();

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<Timer> Items { get { return _Items; } set { _Items = value; } }
}

使用集合編輯器新增刪除時 InitializeComponent() 會自動增刪物件
但若直接在設計頁刪除 My_Component 物件,會殘留新增的物件下來,

就像是DataGridView 建立欄位會生成該欄位的物件,
刪除DataGridView時生成的欄位物件也會一起刪除
請問要如何達到這樣效果?

搜尋相關Tags的文章: [ C# ] , [ 集合編輯器 ] ,
本篇文章發表於2018-08-19 22:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

獅子
檢舉此回應
會不會是和 Component.Site 有關呢?
本篇文章回覆於2018-08-20 15:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

獅子
檢舉此回應
原來只要在覆寫 Dispose
在發生時將所有項目也一並Dispose 就行了

[code]
protected override void Dispose(bool disposing)
{
for(int i=0;i<_List.Count;i++)
_List[i].Dispose();
base.Dispose(disposing);
}
[/code]
本篇文章回覆於2018-08-21 14:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.