1
CA2000釋放對象處置我的MDI子窗體在所有引用超出範圍之前'frm'。 WINPRO FormMain.cs 32代碼分析抱怨「失去範圍之前CA2000處置對象」的時候我不要失去對象範圍</p> <p>在方法<code>FormMain.barButtonItem1_ItemClick(object, ItemClickEventArgs)</code></p> <p>呼叫System.IDisposable.Dispose前
方法:
private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
{
FormCustomerList frm = new FormCustomerList();
frm.MdiParent = this;
frm.Show();
}
這並不是一個嚴重的問題,但是這是爲什麼解僱?
我最終無法使用frm.Dispose()
或using()
,因爲表單不會顯示。
我也試圖處理窗體關閉然後處置,但違反總是在這裏。
在窗體關閉之前不顯示窗體嗎?在這種情況下,你可以在之後調用dispose。否則,您需要在成員中保留一個引用,以便稍後處理。 – Lee
_「我最終不能使用frm.Dispose()或使用(),因爲表單不會顯示」_ - 請顯示您嘗試過的代碼,因爲這應該可行。 – CodeCaster
這是一個虛假的警告。 (在這個非常特殊的情況下)。調用Dispose將摧毀子窗體。我認爲MDI Container知道如何在關閉子窗體時處理它的子窗體。如果您搜索'CA2000誤報',您應該找到成千上萬的鏈接,解釋您爲什麼會收到此消息(這是一個代碼分析警告,而不是編譯器警告) – Steve