AFAIK 使用 Web 浏览器控件时,您需要一个带有主题文件名的有效 URL,例如“Garden/garden.htm”。所以其他解决方案非常困难,我认为使用 Web 浏览器控件是不可能的。
您知道您可以使用以下代码进行硬编码调用:
public static string GetChmUrl(string fileName, string page)
{
StringBuilder url = new StringBuilder();
url.AppendFormat("mk:@MSITStore:{0}::", fileName);
if (page.IndexOf('/') != 0) url.Append('/');
url.Append(page);
return url.ToString();
}
和
webBrowser1.Navigate(new Uri(GetChmUrl(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync, "Garden/garden.htm")));
要在没有完整帮助窗口的情况下按 TopicId 显示 HTMLHelp 主题,您可以为 HTMLHelp 查看器窗口创建一个特殊的窗口类型。好的——这更像是一项帮助创作工作,准备从您的应用程序调用。可以通过以特殊方式编译 CHM 并将其缩减为通常位于 HTMLHelp 查看器右侧的内容窗格。
您可以通过 TopicId 调用内容,结果显示在快照中:
private void btnTopicId_Click(object sender, EventArgs e)
{
Help.ShowHelp(this.btnOpenHelpShowTopic, helpProvider1.HelpNamespace, HelpNavigator.TopicId, @"10000");
}

许多年前,正如您在快照中看到的那样,应用程序有一个所谓的“嵌入式帮助”。这是通过 HTMLHelp API 调用完成的。我有旧的 Delphi 代码,但没有翻译成 .net。HTMLHelp 已经使用了将近 20 年,而今天更多地使用 Web 帮助。所以你必须考虑和决定。

您需要使用编组从 Visual C# 应用程序调用非托管 HTML 帮助 API。在 .net 中使用 HTMLHelp API 并不容易。要尝试一下,您可以从以下网址下载示例(在文章末尾)开始:https:
//support.microsoft.com/en-us/kb/317406
我也附上了一张快照:

HTH。