0

フォームに埋め込んでいるサード パーティの ActiveX コントロールがあります。コントロールのクラスは IDisposable を実装します。私の質問は、フォームを閉じるイベントでコントロールの破棄メソッドを手動で呼び出すか、デザイナーに移動してフォームの破棄メソッドを編集してコントロールの破棄を呼び出す必要があるかどうかです。

フォームが所有するすべてのコントロールの dispose メソッドを呼び出すことは理解していますが、これは COM コントロールであるため、例外はありますか。ありがとう。

PS: Visual Studio 2008、.Net 3.5、プロジェクト タイプ: Windows フォーム アプリケーションを使用しています。

4

2 に答える 2

2

MSDN Marshal.ReleaseComObject COM オブジェクトを解放または解放するには、次のコードを使用する必要があります

System.Runtime.InteropServices.Marshal.ReleaseComObject( someComObject); 

//これはあなたの COM オブジェクトです Dispose は COM オブジェクトでは機能しません。

((IDisposable)fs).Dispose();
于 2012-07-31T23:19:04.493 に答える
0

いいえ、あなたがしなければならない特別なことは何もありません。

ControlクラスForm(継承元などの他のコンテナー コントロールの元) はIDisposableインターフェイスを実装するため、(標準のIDisposable実装ガイドラインに従っている場合) インターフェイスを実装するために保持しているすべての参照を破棄する必要がありIDisposableます。

Controlsそうは言っても、あなたのコントロールは、それがプロパティによって公開されたコントロールコレクションにあると仮定すると、それを含むウィンドウが閉じられたときにそのIDisposable.Disposeメソッドが呼び出されます(ウィンドウを閉じるとウィンドウのDisposeメソッドが呼び出されるため)。

于 2012-07-31T20:20:48.950 に答える