0

コントロールに HTML ファイル (ローカル画像を含む) を表示しようとしていますWebBrowser。ユーザーは を使用してファイルを選択できますOpenFileDialog。その後、コントロールに表示されます。

しかし、私は解決するのに苦労しているこれらの問題を抱えています:

  1. コントロールを に追加してから、Form読み込みが非常に遅くなりました。フォームがインスタンス化されるまでに約 10 秒かかります。

  2. WebBrowser.Navigate初めてのみ機能します。2 番目のファイルを読み込もうとしても、何も起こりません。Refresh2 つのファイル間で , Update,を呼び出してみOpenNewましabout:blankたが、適切に行う方法がわかりません。最初に開いたファイルのみが表示されたままになり、別のページに移動しようとしても例外や警告は表示されません。

私は何か間違ったことをしていますか?たとえば、Lutz Roeder の Writerは即座に起動し、後続のファイルを問題なくロードしますが、多くの相互運用機能を使用する (そして編集可能である) ため、それらすべてを回避しようとしています。

4

1 に答える 1

1

ローカル.htmlファイルをにロードする方法WebBrowserは次のとおりです。

OpenFileDialog ofd = new OpenFileDialog();
// Do filtering here
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    webBrowser1.DocumentText = System.IO.File.ReadAllText(ofd.FileName);
}

問題なく次々とファイルをロードできます。フォームの初期化中または開いているときに大きな html ファイルを読み込もうとしている場合、これが 10 秒の読み込み時間の原因である可能性があります。フォームにコントロールがあると、ほぼ瞬時にフォームが読み込まWebBrowserれました。

お役に立てれば!

編集:のストリームを設定してみてくださいWebBrowser

System.IO.Stream s = System.IO.File.OpenRead(ofd.FileName);
webBrowser1.DocumentStream = s;
于 2012-09-24T21:42:57.613 に答える