ActiveSkinは、もともと VB6 で開発され、後に VB.NET に移行されたアプリケーションのすべての形式で使用されています。このアンマネージ コードは Interop にラップされ、アプリケーションのすべてのフォームに継承されるクラス SkinForm で宣言されます。
これで、クラスのメソッド OnFormClosing に次のコードが追加されました。
MyBase.OnFormClosing(e)
If Not ActiveSkin Is Nothing AndAlso Me.Controls.Contains(ActiveSkin) Then
Me.Controls.Remove(ActiveSkin)
End If
ActiveSkin = Nothing
ActiveSkin - ActiveSkin ライブラリの SkinForm クラスのラッパーです。
フォームを閉じるたびに、GDI リークが発生します。
次のコードを追加すると:
ActiveSkin.Dispose()
コントロール コレクションから削除した後。漏れが消える。ただし、フォームを最初に閉じるときに、次のメッセージが表示されます (アプリケーションの実行中に 1 回だけ)。
「<em>警告!このアプリケーションは、ActiveSkin コントロールの試用版で作成されました。ここで ActiveSkin を登録できます: http://www.softshape.com/activeskin ”.
もちろん、ライブラリのライセンスは持っています。
何か考えはありますか?
ありがとう。