2016-05-17 5 views
0

最近、私がメッセージを傍受して処理していたという状況がありました。フォームが最初に開かれたときはすべて正常に機能しましたが、閉じて開いてからObjectDisposedExceptionが発生します。IMessageFilterを使用しているときのObjectDisposedException

私は最終的に私は、フォームを閉じるとき

Application.RemoveMessageFilter(this) 

を呼び出すために必要なことを考え出し、それ以外の場合は、閉じた形式のメッセージを処理しようとし続けました。私はここでこれに対処する質問/答えは見当たらなかったので、他の誰かが同じ問題を抱えている場合に追加したいと思っていました。

また、MSDNの例では、メッセージフィルタの削除も表示されません。

public partial class Template_Editor : Form, IMessageFilter 
{ 
    public Template_Editor(ICollection<Vendor> vendorList) 
    { 
     InitializeComponent(); 
     Application.AddMessageFilter(this); 
    } 

    public bool PreFilterMessage(ref Message m) 
    { 

    } 
} 

答えて

0

あなたがメッセージ(すなわち、フォームを閉じるとき)

の処理を完了したら

Application.RemoveMessageFilter(this) 

を呼び出すようにしてください

関連する問題