レジストリでの対処となりました。アプリケーションだけでは解決しないのは、導入時の手間が増えます。
photo credit: cipovic via photopin cc
Visual BasicでWebBrowserコンポーネントを使ってWebサイトを表示したら、Internet Explorer 8以降であれば正常に表示されるサイトのレイアウトが崩れて表示されました。
レイアウトの崩れ方を見てみると、互換表示を選んだときと同じ崩れ方なので、互換モードを解除する方法を探さないといけないようです。
調べた結果
レジストリに値を書き込むしかないということがわかりました。どのように書き込むかは、以下のサイトに書かれています。
Internet Feature Controls (B..C) (Internet Explorer)
僕の場合は、
HKEY_CURRENT_USER Software Microsoft Internet Explorer Main FeatureControl FEATURE_BROWSER_EMULATION
に
名前:test-browser.exe
DWORD:0x22b8
をレジストリに書き込むことで、互換モードではなく表示され、意図したとおりとなりました。
上記のサイトにも書いてありますが、WebBrowserコンポーネントを使っていてなにも設定していないと、0x1B58が設定されたことになって、IE 7互換表示になってしまいます。
最初から、利用しているコンポーネントのバージョンそのままで表示するように改めて欲しいです。