1つの解決策は、から派生したクラスSystem.ComponentModel.Component
またはを実装するクラスで使用している使い捨てタイプをカプセル化することですSystem.ComponentModel.IComponent
。
次に、デザイナーが生成したコードによってインスタンス化されるIContainerにそれらを追加でき、他のコンポーネントと一緒に破棄されます。
例えば
class MyDisposableComponent : IComponent
{
... implementation
}
class MyUserControl : UserControl
{
MyDisposableComponent myDisposableComponent;
...
void SomeMethod()
{
myDisposableComponent = new MyDisposableComponent();
components.Add(myDisposableComponent);
// myDisposableComponent will be disposed automatically when the
// IContainer components is disposed by the designer-generated
// Dispose implementation.
}
...
}