簡體   English   中英

Dispose 在用戶控件上,真的是要編輯.designer.cs 文件嗎?

[英]Dispose on user controls, really meant to edit the .designer.cs file?

對於具有必須釋放的內部數據結構的用戶控件,是否將該代碼添加到 .designer.cs 文件中的 Dispose 方法的正確位置,或者是否有一個事件或我們打算使用的東西?

編輯:這是一個 winforms 用戶控件。

如果您在談論 WinForms,我通常采用兩種方法之一來解決此問題。

方法一

打開 Form.Designer.cs 文件。 在生成的 dispose 方法中,我添加了對 DisposeCore 的調用。 然后我將 go 返回到 Form.cs 並添加一個 DisposeCore 方法,該方法現在將在 dispose 期間調用。 我將所有處置邏輯添加到此方法中。

技術上不支持編輯設計器文件。 但是我發現當設計器重新生成代碼時,這個特定的編輯不會被沖走。

方法二

將事件處理程序添加到 Form.Disposed 並在處理程序中執行我的處置邏輯。 這是更可取的方式,因為它是受支持的操作,並且不會受到您尚未遇到的某些設計器世代的影響。

或者,您可以將其剪切並粘貼到 main.cs 文件中。 該代碼不在“#region 組件設計器生成的代碼”中,因此 Studio 不會錯過它。

你能澄清一下什么樣的控制嗎? ASP.NET,WinForms?

在 ASP.NET 中,您可以:

protected override void OnUnload(EventArgs e){
     base.OnUnload(e);
     //Unload here...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM