【问题标题】:Use Id instead of Context使用 Id 而不是 Context
【发布时间】:2015-12-07 09:49:30
【问题描述】:

我使用 HelpNDoc 为我的应用程序中的上下文相关帮助提供 chm 文件。

在此软件中,您可以定义帮助 ID 和相应的帮助上下文。 例如,帮助 ID 可能是 "SystemSetup",帮助上下文是 57

现在我的问题:

我可以这样调用帮助:

System.Windows.Forms.Help.ShowHelp(null, @"myhelp.chm", HelpNavigator.TopicId, "57");

一切正常,但我可以使用帮助 ID ("SystemSetup") 来调用 ShowHelp 吗?

我问这个原因是帮助上下文可以更改,但帮助 ID 始终保持不变。

【问题讨论】:

    标签: c# visual-studio chm html-help helpndoc


    【解决方案1】:

    没有简单的方法可以做到这一点。主题 ID 是您必须直接指向主题的最佳方式。我们用于生成 CHM 文件的软件允许为主题指定名称,可以使用您的代码进行检索。

    如果这对您不起作用,并且您唯一拥有的就是名称,您可以通过使用 Topic 枚举值和 HTML 文件的名称来完成它(如果它足够不同的话)。

    您可能需要这样的东西(您可以通过 CHM 查看器检索 html 文件名):

    System.Windows.Forms.Help.ShowHelp(null, @"myhelp.chm", HelpNavigator.Topic, "SystemSetup.html");
    

    我不知道哪个选项更好。这取决于您和您的具体情况。

    【讨论】:

    • 好的,软件可以生成带有常量的源文件,我可以使用,但是我必须确保使用对应的源文件。您的示例正在运行,但我认为最好的方法(但不舒服)是使用帮助上下文(主题 ID)。
    • 你可以使用它。这也是我们实际所做的。确实。也许如果实际的文档文件是基于 XML 的,您可以生成一些 C#,在其中将名称转换为 id...
    【解决方案2】:

    HelpNDoc 使用以下模式命名主题文件:"HELP_ID.htm" 其中HELP_ID 是为该主题选择的唯一帮助 ID。因此,您可以使用以下命令可靠地打开特定主题:

    System.Windows.Forms.Help.ShowHelp(null, @"help.chm", HelpNavigator.Topic, "HELP_ID.htm");
    

    此外,正如您所发现的,HelpNDoc 能够生成带有常量的源文件。您可以通过创建新的“代码”构建来自动化它的生成并将其包含在构建过​​程中。请参阅分步指南:How to create a new documentation output to be published

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-02
      • 2019-07-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-06
      • 2016-10-21
      相关资源
      最近更新 更多