- 締切済み
C#のwebBrowserについて質問します
C#のwebBrowserを使ってpdfファイルを表示するアプリケーションを作っているのですが、pdfファイルを表示中にそのアプリケーションを閉じてしまうとエラーが出てしまいます。 しかも、このエラーはデバックしたときには起こらないのですが、実行ファイルから実行してpdfファイル表示中に閉じるとエラーが起きます。 ソースはこのようなものでもエラーが起こります。 private void button1_Click(object sender, EventArgs e) { //PDFファイルを開く webBrowser1.Url = new Uri(@"C:\Work\Test.pdf"); } どうすれば、エラーが起きなくなるか知っていれば教えてください。 開発環境はVisualStadio2005 OSはWindowsXPです
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
おそらくこれと同じ現象だと思います。Adobe Reader側の不具合が濃厚ですね。 http://social.msdn.microsoft.com/forums/ja-JP/netfxgeneralja/thread/4d268e9e-e123-465e-9816-893022b11d61/ 上記サイトの最後に書かれている方法も試してみましたが、エラーがなくならなかったので、少し改造してみました。 私のほうではDebug/Releaseどちらもエラーはでなくなりました。 [System.Runtime.InteropServices.DllImport("ole32.dll")] private static extern void CoFreeUnusedLibraries(); protected override void OnFormClosed(FormClosedEventArgs e) { this.Visible = false; // Disposeすると一瞬ブラウザが消えるのでフォームを非表示に webBrowser1.Dispose(); Application.DoEvents(); CoFreeUnusedLibraries(); base.OnFormClosed(e); } Disposeのタイミング等は調整してください。
お礼
ありがとうございました。 おかげさまでエラーをなくすことができました。