使用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是直接指向主题的最佳方式。我们用于生成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能够生成具有常量的源文件。您可以通过创建新的"代码"构建来自动生成它,并将其包含在构建过程中。请参阅分步指南:如何创建要发布的新文档输出