2011-04-07 50 views
2

我環顧四周,看到使用資源 (如何創建和使用資源在網) 的帖子。我學會了如何將文件放置到項目的資源中並以編程方式檢索它。但是,我沒有看到有資源的想法,也許? 我在窗體上有一個選項卡,我有一個webbrowser控件,但我只想顯示一個幫助文檔。 我把html文件作爲資源,但是當我查找資源後打印出來的時候,它給了我所有文件的文本(html標籤)而不僅僅是文件名,這樣我就可以做類似在C#項目中使用資源

helpBrowser.Url = new Uri("file//:"+Properties.Resources.help); 

我可能需要一種不同的方法。我使用控件不是實際瀏覽,而是顯示一個頁面,而不是完全意圖使用。

謝謝,夥計們。 StackOverflow非常棒!

+0

我很好奇你爲什麼要追求這方面的資源。有沒有關於你的項目,讓你不願意將HTML文件作爲內容? – 2011-04-07 16:33:26

+0

原因是我想以某種方式打包這個HTML文件到最終構建神器,所以問題變成如何引用另一個控件屬性(URL)中的文件的完整路徑和實際包裝HTML文件與可執行文件 – 2011-04-07 16:56:04

+0

在那如果你被丹尼爾或羅伯特的方法困住了。問題是沒有文件路徑可供參考。正如羅伯特所說,它直接烘焙到可執行文件中,這意味着文件系統在物理上並不存在,因此不能用文件路徑引用。 – 2011-04-07 17:14:08

回答

2

WebBrowser是一個非託管組件,它不知道.NET資源。有一個協議來讀取非託管資源,但你不想去那裏。使用時只需將DocumentText屬性:

private void HelpButton_Click(object sender, EventArgs e) { 
     webBrowser1.DocumentText = Properties.Resources.HelpPage; 
    } 

謹防平時麻煩顯示離線HTML,它將不知道在哪裏可以找到你的HTML嵌入的任何圖像。如果這是一個交易斷路器,那麼你最好在磁盤上的文件。無論如何,這是對大文件更全面的更好解決方案。

+0

這對我來說是最好的解決方案。謝謝! – 2011-04-07 19:08:09

1

您無法直接將資源作爲具有受管資源的文件訪問。您將不得不手動將內容插入Web瀏覽器控件。

1

資源嵌入在您的EXE或DLL中,無法直接通過瀏覽器訪問。 您需要檢索資源並將其保存到臨時文件,然後將瀏覽器指向該臨時文件。