【问题标题】:Ignore Web Browser control "Cannot find" error [duplicate]忽略 Web 浏览器控件“找不到”错误 [重复]
【发布时间】:2020-04-13 14:57:49
【问题描述】:

我正在处理一个 Winforms 项目,并希望显示 HTML 文件中的“关于”页面内容。 我为此使用了 WebBrowser 控件,但即使它可以工作,在打开解决方案或构建项目时我仍然会收到以下错误消息

Error Message

有什么办法可以修复或忽略它?

这是关于页面类的方法调用:

    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;
    }
}

附: 我在另一个表单上使用此代码,但仅收到关于“关于”页面的错误。 另外需要注意的是,我在 Mac 上使用的是 Parallels VM。

谢谢!

【问题讨论】:

  • 你是说打开解决方案或构建项目时会发生这种情况,而不是运行时?
  • 我运行它时确实会发生。
  • 请确认这是一个 WinForms 应用而不是 WPF?
  • 这是一个 Winforms 应用程序。另外需要注意的是,我在 Mac 上使用的是 Parallels VM。

标签: c# winforms webbrowser-control


【解决方案1】:

我不知道在解决方案加载或编译期间运行的代码是什么,您可以在项目文件中查找已添加的任何目标。

但如果文件不存在,您可以选择不使用 Navigate 来解决问题:

if(System.IO.File.Exists("c:\\whatever"))
{
    i_WebBrowser.Navigate(uri);
}

如果您这样做,您可能会考虑加载一个保证存在的页面或load a string of html,以便通过适当的消息使其对用户更加友好。

【讨论】:

  • 我认为这应该可以解决问题,这很奇怪,因为我无法跟踪之前对该方法的调用,并且在任何时候都不应该请求此路径。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
相关资源
最近更新 更多