【问题标题】:Compiled HTML Help file shows "This program cannot display...", when pressing F1 on the debugged application在调试的应用程序上按 F1 时,编译的 HTML 帮助文件显示“此程序无法显示...”
【发布时间】:2014-09-14 08:16:26
【问题描述】:

我在编译的 html 帮助文件中遇到了这个问题,该文件在 Microsoft Visual Studio 2010 上运行。

注意:我没有足够的声望点来发布图片。请多多包涵。

编译后的 html 帮助文件的名称是 GeneralHelp.chm。为了让它出现,有两种方法:

  1. 单击“帮助”选项卡中的“常规”。
  2. 仅在主窗体处于活动状态时按 F1 键。

我没有修改属性的默认值,但是这里是激活的c#代码:

private void generalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, Application.StartupPath + @"\GeneralHelp.chm");
        }

private void mdiMain_Load(object sender, EventArgs e)
            {
                helpProviderGeneral.HelpNamespace = Application.StartupPath + @"\GeneralHelp.chm";
            }

第一种方法可以正常工作,但第二种方法(仅在主窗体处于活动状态时按 F1 键)不能正常工作。它有一条消息显示“此程序无法显示网页”。我尝试重建 .chm 文件,但它仍然会发生。

此外,当我先单击其他链接,然后单击我想在导航窗格中看到的页面时,我发现它变得正常了。我的其他 .chm 文件不能以这种方式工作。我还将它保存在正确的文件夹中:调试和发布。此外,GeneralHelp.chm 的拼写和大小写都是正确的。最后,当我尝试在 MS Visual Studio 2010 之外打开 GeneralHelp.chm 时,一切正常。

如果您需要更多信息,请发表评论,我会回答。我真的很想知道如何解决这个问题。感谢您花时间阅读本文,我期待着为我提供解决方案。

【问题讨论】:

  • 没有任何答案,但是关于 CHM 文件以及如何使用它们的可能的替代信息来源是:kb.helpwaregroup.com(这是我在使用 CHM 文件时遇到的一个问题,可能相关,尽管我对此表示怀疑:stackoverflow.com/questions/11788702/…)
  • 具体要显示什么,例如添加 HelpNavigator.TableOfContents。并确保将 .chm 文件复制到您的 EXE 项目的 bin\Debug 目录中。

标签: c# visual-studio-2010 chm


【解决方案1】:

您可以将 helpProvider1.HelpNamespace 想象为 .chm 帮助文件的链接。因此,无法调用这种方式的帮助主题。作为根节点,您必须了解 CHM 帮助文件的内部结构。考虑一个带有(子)目录和 HTML 主题的 Web 服务器上的结构化网页(“主页”),例如@"/Garden/flowers.htm"。

正如其他 cmets 前面提到的(见上文),请确保将 .chm 文件复制到您的 EXE 项目的 bin\Debug 目录中。

在代码示例中,我在开头设置了常量。 CHM 帮助文件的示例取决于技术作者如何编译它们,例如与 HTMLHelp Workshop 或其他帮助创作工具一起使用,并在此处代表可能性。

请注意内联 cmets: // 为此表单设置 F1 帮助主题 ... // 并为该表单的某些控件设置 F1 帮助主题(每个控件两行)。

    namespace C_Sharp_CHM
{
  /// <summary>
  /// Using C# und CHM files.
  /// </summary>
  public partial class frmMain : Form
  {
    private const string sHTMLHelpFileName_ShowSingleHelpWindow = @"\help\CHM-example_ShowSingleHelpWindow.chm";
    private const string sHTMLHelpFileName_ShowWithNavigationPane = @"\help\CHM-example_ShowWithNavigationPane.chm";
    private const string sHTMLHelpFileName_ShowWithoutAutoSync = @"\help\CHM-example.chm";

    public frmMain()
    {
      InitializeComponent();
    }
   ...


  private void frmMain_Load(object sender, EventArgs e)
  {
    // example: System.Diagnostics.Process.Start(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync);
    webBrowser1.Navigate(new Uri(GetChmUrl(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync, "Garden/garden.htm")));

    if ((chkShowHelpWithNavigationPane.Checked == true))
    {
      helpProvider1.HelpNamespace = Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync;
    }
    else
    {
      helpProvider1.HelpNamespace = Application.StartupPath + sHTMLHelpFileName_ShowSingleHelpWindow;
    }
    // set F1 help topic for this form
    helpProvider1.SetHelpNavigator(this, HelpNavigator.Topic);
    helpProvider1.SetHelpKeyword(this, @"index.htm");
    // and set F1 help topic for some controls of this form  (two lines per control)
    helpProvider1.SetHelpNavigator(this.btnPopulate, HelpNavigator.Topic);
    helpProvider1.SetHelpKeyword(this.btnPopulate, @"/Garden/flowers.htm");
    helpProvider1.SetHelpNavigator(this.btnExit, HelpNavigator.Topic);
    helpProvider1.SetHelpKeyword(this.btnExit, @"/Garden/tree.htm");
    helpProvider1.SetHelpNavigator(this.chkShowHelpWithNavigationPane, HelpNavigator.Topic);
    helpProvider1.SetHelpKeyword(this.chkShowHelpWithNavigationPane, @"/HTMLHelp_Examples/jump_to_anchor.htm#AnchorSample");
    helpProvider1.SetHelpNavigator(this.btnOpenHelpShowTopic, HelpNavigator.Topic);
    helpProvider1.SetHelpKeyword(this.btnOpenHelpShowTopic, @"/HTMLHelp_Examples/image_and_text.htm");
  }

  private void btnOpenHelpShowTopic_Click(object sender, EventArgs e)
  {
    Help.ShowHelp(this.btnOpenHelpShowTopic, helpProvider1.HelpNamespace, HelpNavigator.Topic, @"/HTMLHelp_Examples/image_and_text.htm");
  }

【讨论】:

    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多