スタックオーバーフローに関するメソッドが見つかりました。このメソッドは、指定されたイベントからすべてのイベントハンドラを取り除きます。しかし、プログラムにコードをコピーすると、「参照がインスタンスに設定されていません」というエラーが表示されました。ここでイベントハンドラのストリッパーコードが機能していない
は、問題のコードです:
FieldInfo f1 = typeof(Control).GetField("DocumentCompleted",
BindingFlags.Static | BindingFlags.NonPublic);
object obj = f1.GetValue(browser);
PropertyInfo pi = browser.GetType().GetProperty("Events",
BindingFlags.NonPublic | BindingFlags.Instance);
EventHandlerList list = (EventHandlerList)pi.GetValue(browser, null);
list.RemoveHandler(obj, list[obj]);
エラーがこの行に起こった:
object obj = f1.GetValue(browser);
ブラウザオブジェクトは、Webブラウザーのインスタンスであり、そしてそれは、この時点ではインスタント化されています。
編集:別の方法でハンドラを削除してください。
エラーはそれが設定されていないf1'それは 'だことを示すことになるあなたのエラーが発生します。 – ChrisF
この 'FieldInfo f1 = typeof(Control).GetField(" DocumentCompleted ")'を試してください。 BindingFlagsを削除する – ebattulga
まだヌル、それは私のために働いていない。 – TheGateKeeper