2012-09-24 58 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

相關問題