DOBON.NETプログラミング道掲示板

■34708 / 親記事)  WebBrowserのDocumentCompletedイベントの切り替え
  
□投稿者/ わん 一般人(5回)-(2021/05/09(Sun) 14:29:13)
  • アイコン環境/言語:[Windows10 VisualStudio2019 VB.net WindowsForm] 
    分類:[.NET] 

    WebBrowserを使ってインターネットからデータを取得するプログラムを作っています。DocumentCompletedで、読み込み完了を確認してからデータを抽出しているのですが、ページを進めるにあたり、DocumentCompletedの内容が複雑になってきます。
    そこで、AddHandlerとRemoveHandlerで、イベント先を更新しながら進めようと考えています。
    【質問】
    WebBrowserのDocumentCompletedに紐づけられている全てのLink先を削除する方法が分かりません。何か?いい方法はありますでしょうか?
    現在は、AddHandlerする予定のもの全てをとりあえず削除するようにしています。(エラーにはならないので・・・)
    また、Link先の一覧を取得する方法ってありますか?
    詳しい方、いらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。
マルチポストを報告
違反を報告
引用返信 削除キー/
■34710 / ResNo.1)  Re[1]: WebBrowserのDocumentCompletedイベントの切り替え
□投稿者/ Hongliang 大御所(601回)-(2021/05/10(Mon) 11:07:40)
  • アイコン「Link先」というのはイベントに登録されたイベントハンドラのことだと思いますが、これを外部から取得する方法は基本的にはありません。
    // リフレクションを使えば不可能ではないですが。

    AddHander/RemoveHandlerを繰り返すのは個人的にはかえって見通しが悪くなるように思います。
    どんな感じに実装されているのか分かりませんが、例えばDocumentCompletedイベントハンドラ自体は単純にe.Urlに対してswitch文で分岐させ、実際の処理は独立したメソッドにする、ぐらいでもいいんじゃないかなと思います。
    慣れてくればDictionary<string, Action>使うなどの多少の技もありますが…。
違反を報告
引用返信 削除キー/
■34713 / ResNo.2)  Re[2]: WebBrowserのDocumentCompletedイベントの切り替え
□投稿者/ わん 一般人(8回)-(2021/05/10(Mon) 23:11:33)
  • アイコンNo34710に返信(Hongliangさんの記事)
    丁寧に教えて頂き有難うございます。

    冷静に考えてみると、おっしゃる通りだと思います。
    後々に見通しが悪くなるデメリット。
    共感致します。Case文で処理を考えてみます。
    また、困ったら、助けてください。
    有難うございました。

違反を報告
引用返信 削除キー/
■34714 / ResNo.3)  Re[3]: WebBrowserのDocumentCompletedイベントの切り替え
□投稿者/ わん 一般人(9回)-(2021/05/10(Mon) 23:12:02)
  • アイコン解決済み
解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -