我有C#WinForm對話框,其中包含自定義表格控件,行和單元格都是自定義控件。關閉(不隱藏)這個對話框後,我有內存泄漏(這是由.NET內存分析器確認)。用自定義表格關閉winform後內存泄漏
從我從profiler獲得的信息我認爲它處理這些控件的處置,但我不知道如何解決它。
在表控制我行的列表:
private readonly List<CustomRow> _rows = new List<CustomRow>();
在每一行中我有小區列表:
List<CustomCell> _cells = new List<CustomCell>();
現在的控件處置被自動生成的代碼完成在designer.cs中:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
但現在我想我是否需要將配置代碼移動到.cs文件並添加s omething這樣,例如用於表:
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
// dispose each row here
}
base.Dispose(disposing);
}
或者這是自動完成的,內存泄漏的原因是不同的? (它可能是什麼?)
只是爲了讓道路事件當然,在顯示你的-hm對話框時,你使用'Show'而不是'ShowDialog'?並且'Dispose'方法被調用? –
@IvanStoev我使用Show(),而不是ShowDialog()。更重要的是,這些對話框不直接顯示,而是作爲控件添加到選項卡形式(每個選項卡一個),然後調用主窗體的Show() – demonplus