2012-09-24 59 views
0

我试图在WebBrowser控件中显示HTML文件(包含本地图像)。用户可以使用OpenFileDialog选择文件,然后显示在控件中。使用WebBrowser控件从磁盘加载多个HTML文件

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

  1. 因为我已经添加了控制,我Form,它已经加载缓慢真的。实例化表单需要将近10秒的时间。

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

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

回答

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; 
+0

感谢。那么,设置“DocumentText”的问题是图像不会显示,因为它们通常有相对路径。这就是为什么我尝试通过'Uri'属性加载的原因。是的,我刚刚创建了一个测试项目,并立即开始,但我的旧项目需要很长时间才能加载(并且不会打开任何内容)。 – Lou

+0

我编辑了帖子。 – 3aw5TZetdf

相关问题