c# - 忽略 Web 浏览器控件“找不到”错误
问题描述
我正在开发一个 Winforms 项目,并希望显示 HTML 文件中的 About 页面内容。我为此使用了 WebBrowser 控件,但即使它有效,在打开解决方案或构建项目时我仍然收到以下错误消息:
有什么办法可以修复或忽略它?
这是关于页面类的方法调用:
private void displayAboutContent()
{
this.labelVersion.Text = string.Format(@"Version: {0}",BoostEngine.r_CurrentVersion);
UITools.displayHTMLPage(m_WebBrowser, m_ResourceName);
}
和 UI Tools 静态类:
public static class UITools
{
public static void displayHTMLPage(WebBrowser i_WebBrowser, string i_ResourceName)
{
Uri uri = new Uri(getFilepath(i_ResourceName));
i_WebBrowser.ScriptErrorsSuppressed = true;
i_WebBrowser.Navigate(uri);
}
private static string getFilepath(string i_ResourceName)
{
string projectPath = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
string filePath = Path.Combine(projectPath, string.Format("Resources\\{0}.html", i_ResourceName));
return filePath;
}
}
PS 我在另一个表单上使用此代码,但仅在“关于”页面上收到错误。另外需要注意的是,我在 Mac 上使用 Parallels VM。
谢谢!
解决方案
我不知道在解决方案加载或编译期间运行的代码是什么,您可能会在项目文件中查看已添加的任何目标。
Navigate
但是为了简单地解决问题,如果文件不存在,您可以选择不解决:
if(System.IO.File.Exists("c:\\whatever"))
{
i_WebBrowser.Navigate(uri);
}
如果您这样做,您可能会考虑加载一个保证存在的页面或加载一个 html 字符串,以通过适当的消息使其对用户更加友好。
推荐阅读
- android - 设置卡片视图和滚动动画的背景
- mysql - IF语句MYSQL中的选择查询
- android - 如何以预定义的格式解析古吉拉特语日期和格式
- mysql - 创建存储过程时如何利用mysql中的now()函数?
- java - 如何使用从一种方法到另一种方法的值?
- sql - 如何使用不同的列作为参考制作数据透视表?
- python - 如何根据sklearn中的列值拆分数据
- angular - Angular 8 应用程序中的 3D 条形图,使用 d3.js 或 plotly 或 three.js
- javascript - 将 equirectangular 深度图转换为 3d 点云
- java - Tomcat 应用程序为 WEB-INF/lib 中的 Jar 抛出 java.lang.ClassNotFoundException