使用Id而不是Context

本文关键字:Context Id 使用 | 更新日期: 2023-09-27 18:26:00

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

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

现在我的问题是:

我可以这样求助:

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

一切都很好,但我能告诉你如何用帮助ID("SystemSetup")调用ShowHelp吗?

我这样问是因为帮助上下文可能会更改,但帮助ID始终保持不变。

使用Id而不是Context

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

如果这对你不起作用,而且你只有名称,你可以通过使用Topic枚举值和HTML文件的名称(如果它足够独特的话)来完成它。

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

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

我不知道哪种选择更好。这取决于你和你的具体情况。

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

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

此外,正如您所发现的,HelpNDoc能够生成具有常量的源文件。您可以通过创建新的"代码"构建来自动生成它,并将其包含在构建过程中。请参阅分步指南:如何创建要发布的新文档输出