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

标签 c# webbrowser-control

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

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

我有一些问题:

  1. 放置 HTML 文件的位置(以便在用户执行安装时也会安装它)
  2. 如何引用文件? (例如,我猜测用户的安装文件夹不会始终相同)

编辑

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

我已将其设置为将其复制到输出文件夹。

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

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

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

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

最佳答案

  1. 在 Visual Studio 中对该文件执行右键单击->属性
  2. 复制到输出目录设置为始终复制

然后您将能够通过使用诸如 @".\my_html.html" 的路径来引用您的文件>

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

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

为了创建一个你可以在本地使用的 URI(而不是通过网络服务),你需要使用 file 协议(protocol),使用你的二进制文件的基本目录 - 注意:这个仅当您如上所述设置“复制到输出目录”或路径不正确时才有效。

这是你需要的:

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

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

关于c# - 在 C# WebBrowser 中加载本地 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194851/

相关文章:

c# - 何时使用 Visual Studio C# "Validated"/"Validating"事件

c# - WebBrowser 导航功能不起作用,并且未调用处理程序

.net - HTTP 状态 : 12002 in . 网络浏览器控制

c# - 查找数组 C# 中的下一个最大值

c# - 测试设备是否始终在线/始终连接 (AOAC) 或支持连接待机?

c# - XAML 设计器未加载

.net - 安装 IE 10 后,WebBrowser 控件不会在双击时自动选择文本

c# - 将数据从 Controller 传递到 View 布局的最佳实践是什么?

C# 在 WebBrowser 控件中选中/取消选中复选框?

c# - 如何在 WebBrowser 中以编程方式提交没有提交按钮的表单