4

破棄する必要がある内部データ構造を持つユーザー コントロールの場合、そのコードを .designer.cs ファイルの Dispose メソッドに追加する正しい場所はありますか?それとも、代わりに使用する予定のイベントまたは何かがありますか?

編集: これは winforms ユーザー コントロールです。

4

3 に答える 3

5

WinForms について話している場合、私は通常、この問題を解決するために 2 つのアプローチのいずれかを取ります。

アプローチ1

Form.Designer.cs ファイルを開きます。生成された dispose メソッド内に、DisposeCore への呼び出しを追加します。次に Form.cs に戻り、Dispose 中に呼び出される DisposeCore メソッドを追加します。すべての破棄ロジックをこのメソッドに追加します。

デザイナー ファイルの編集は技術的にサポートされていません。ただし、デザイナーがコードを再生成しても、この特定の編集は洗い流されないことがわかりました。

アプローチ 2

Form.Disposed にイベント ハンドラーを追加し、ハンドラーで破棄ロジックを実行します。これは、サポートされている操作であり、まだ遭遇していないデザイナーの世代の影響を受けないため、好ましい方法です。

于 2009-03-23T13:08:56.670 に答える
1

または、メインの .cs ファイルにカット アンド ペーストすることもできます。そのコードは「#region コンポーネント デザイナーによって生成されたコード」内にないため、Studio はそれを見逃すことはありません。

于 2014-02-26T14:37:44.100 に答える
1

どのような種類のコントロールを明確にできますか? ASP.NET、WinForms?

ASP.NET では、次のことができます。

protected override void OnUnload(EventArgs e){
     base.OnUnload(e);
     //Unload here...
}
于 2009-03-23T11:22:41.963 に答える