小编典典

在C#WebBrowser中加载本地HTML文件

c#

在我的应用程序中,我有一个WebBrowser元素。

我想在其中加载本地文件。

我有一些疑问:

  1. HTML文件的放置位置(以便在用户执行安装程序时也将安装该文件)
  2. 如何引用文件?(例如,我的猜测是用户的安装文件夹并不总是相同的)

编辑

我已将HTML文件添加到我的项目中。

我已经对其进行设置,以便将其复制到输出文件夹。

当我检查它时,它在运行时存在:\ bin \ Debug \ Documentation \ index.html

但是,当我执行以下操作时,在webbrowser元素中出现“无法显示页面”错误。

我使用以下代码尝试在Webbrowser中显示HTML文件。

webBrowser1.Navigate(@".\Documentation\index.html");

阅读 644

收藏
2020-05-19

共1个答案

小编典典

  1. 做一个 右单击- >属性在Visual Studio中的文件。
  2. 将“ 复制到输出目录”设置“始终复制”

然后,您将可以使用以下路径来引用文件: @".\my_html.html"

构建项目时,复制到输出目录会将文件与二进制dll放在同一文件夹中。这适用于任何内容文件,即使它位于子文件夹中。

如果您使用子文件夹,该文件夹也将被复制到bin文件夹中,因此您的路径将是 @".\my_subfolder\my_html.html"

为了创建可以在本地使用的URI(而不是通过Web服务器),您需要使用 文件 协议,并使用二进制 文件 的基本目录-
注意:仅当您将Copy设置为Ouptut时,此协议才有效上面的目录或路径将不正确。

这是您需要的:

string curDir = Directory.GetCurrentDirectory();
this.webBrowser1.Url = new Uri(String.Format("file:///{0}/my_html.html", curDir));

当然,您必须更改变量和名称。

2020-05-19