ごみばこ

プログラムに関する備忘録などを書いています。

WebBrowserについて

就業中にうつらうつらしてしまいます…
それなりに寝ているのですが…

ということで本題。

.NetのコモンコントロールにWebBrowserというものが用意されています。
URLを渡してあげるとそのページを表示してくれます。

このコントロールですがウェブページだけではなくて、
pdfのファイルも表示することができます。

今回はpdfを開く為に使用することを想定したプログラムです。
adobe readerがインストールされていることを前提として書いてます。

フォーム内にペタッとWebBrowserとButton、お好みでOpenFileDialogを入れてください。
以下がコード↓

        private void btnOpenPDF_Click(object sender, EventArgs e)
        {
            if (this.dlgOpenPDF.ShowDialog() == DialogResult.OK)
            {
                this.webMain.Url = new Uri(this.dlgOpenPDF.FileName);
            }
        }

ボタンのClickイベントに処理を書いています。
大まか処理は以下。

1. ボタンが押されたらファイルを開くダイアログを表示する。
2. OKボタンが押されたらWebBrowserに選択したpdfファイルのパスを渡す。

ここで1つだけ注意。
どうやらWebBrowserはOSのビットに合わせるみたいです。

実際にx64でビルドしたプログラムでpdfを開こうとすると、
WebBrowserでは開かれず別途adobe readerが開かれます。
any cpuでビルドしている場合も64ビットOSで実行すると同じ処理になります。

おそらくIEの64ビットがActiveXに対応しておらず、
代用でadobe readerを起動していると思われます。

x86でビルドしたものはWebBrowser内に表示されますし、
adobe readerが勝手に開かれることもありません。