質問: いつもお世話になります C# でWindowsGUIアプリケーションを作っています。(具体的にはWEB巡回ツールのようなもの) このときWebBrowserコントロールを使っているのですが、IEのバージョンによっては特定のサイトで必ずフリーズしたり、DocumentCompletedイベントが起こらない(?)かったりします。 たとえばIE10Standardモードのみでフリーズせずに閲覧できるページと、IE10Standardモードでは閲覧できないページが混在しているため、ページごとにバージョンを切り替えられずコマっています。 (フリーズするとWebBrowserControlの部分のみならずアプリケーション全体がフリーズして一切の操作を受け付けなくなります。(少なくとも数分待っても元には戻りませんでした) 今はデバッグモードでコンソールを出しているのでコンソールを閉じれば一気にウインドウたちが閉じますが・・・) そのページはJavaScriptをふんだんに使っているようで、もしかしたらそれが原因なのではないかな、とも思っているのですが、JavaScriptを無効にするわけにはいかず・・・ なにかよい解決策等はないでしょうか よろしくお願いいたします。
回答: 原因の切り分けが必要です。 * 当該ページは Internet Explorer で閲覧した場合にもフリーズを起こしますか * WebBrowser コントロールのみを配置してそのページにアクセスするようなプログラムを作成した場合にもフリーズを起こしますか WebBrowser コントロールはレジストリなどで特別に指定しない場合は IE 7 モードで動作します。 [C#] WebBrowser コントロールで使われている Internet Explorerを最新のバージョンに変更する このページの指示に従って作成中のソフトウェアの実行ファイルをレジストリに登録することで実行 IE のバージョンを制御することができます。Visual Studio 上でデバッグを行っている場合は `.vshost.exe` の方もあわせて登録するようにしてください。 例:`TestApp.exe` を追加する場合、次の 2 つを追加 * `TestApp.exe` * `TestApp.vshost.exe`