0

我正在尝试在WebBrowser控件中显示 HTML 文件(包含本地图像)。用户可以使用 选择文件OpenFileDialog,然后将其显示在控件中。

但我有这些我正在努力解决的问题:

  1. 自从我将控件添加到 myForm后,它的加载速度非常缓慢。表单实例化大约需要 10 秒。

  2. WebBrowser.Navigate只在第一次工作。当我尝试加载第二个文件时,没有任何反应。我曾尝试调用Refresh, Update, OpenNew, 在两个文件之间打开about:blank,但我只是不知道如何正确执行此操作。仅显示最初打开的文件,当我尝试导航到其他页面时,不会弹出任何异常或警告。

难道我做错了什么?例如,Lutz Roeder 的 Writer立即启动并毫无问题地加载后续文件,但它使用大量互操作(并且是可编辑的),所以我试图避免所有这些东西。

4

1 回答 1

1

我将本地.html文件加载到 a中的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 回答