ここで質問した問題のバリエーションに遭遇しました。クラスを拡張する代わりに、イベントを持たないSystem.Windows.Form
クラスを拡張します。System.Windows.UserControl
FormClosing
Close
ユーザー コントロールにメソッドを追加して、ネイティブ スレッドに停止を指示することを考えました。停止すると、それDispose
自体を呼び出すユーザー コントロールにイベントを発生させます。このアプローチの問題はDispose
、オブジェクトから呼び出して破棄する (自殺?) ことは悪い習慣のように思われ、(二重破棄を避けるために) 何もしないファイナライザーを作成する必要があり、さらに気分が悪くなります...
提案?
更新:私のユーザー コントロールは を拡張するクラス内に存在しSystem.Windows.Forms.ToolStripControlHost
、そのクラスのインスタンスはメイン アプリケーション フォームに存在します。