C# WinForms中基于HTML的帮助(非HTMLHelp)

C# WinForms中基于HTML的帮助(非HTMLHelp),c#,winforms,html-help,C#,Winforms,Html Help,我放弃了CHM HTMLHelp,因为我无法让它在客户的Win7下的共享文件夹中工作。现在,我有了一个WinForms应用程序的帮助系统,它由各种文件夹结构中的无数HTML文件组成。帮助位于可执行文件旁边名为“Help”的文件夹中 我使用 Help.ShowHelp(Control, HelpUrl, Keyword) 方法在HelpUrl参数中显示相应的HTM文件。然而,这相当麻烦,就好像文件被重命名或移动到另一个文件夹,帮助就会中断。我想知道是否还有其他更适合基于HTML文件的帮助的方法?

我放弃了CHM HTMLHelp,因为我无法让它在客户的Win7下的共享文件夹中工作。现在,我有了一个WinForms应用程序的帮助系统,它由各种文件夹结构中的无数HTML文件组成。帮助位于可执行文件旁边名为“Help”的文件夹中

我使用

Help.ShowHelp(Control, HelpUrl, Keyword)

方法在HelpUrl参数中显示相应的HTM文件。然而,这相当麻烦,就好像文件被重命名或移动到另一个文件夹,帮助就会中断。我想知道是否还有其他更适合基于HTML文件的帮助的方法?

属性来显示帮助(HTML文件-本地)

激活hlpProvider组件hlpHtmlLocal,并将hlpHtmlLocal的HelpNameSpace属性设置为要使用的文件名

我们使用右边的小按钮打开一个带有对话框的本地HTML文件

下一步是将控件(例如按钮)的HelpNavigator属性设置为HelpNavigator枚举的值(请参见下表)。这里我们使用主题

当应用程序运行时,单击帮助按钮以启用“What's this…”帮助。光标会改变。现在单击该按钮,或在该按钮具有焦点时按F1。这将在浏览器中打开单个HTML文件

您似乎无法使用锚定名称跳转到HTML文件的特定部分


显示帮助的属性(HTML文件-服务器)

激活hlpProvider组件,并将hlpHtmlServer的HelpNameSpace属性设置为要使用的文件名。这里我们使用单个HTML文件的http://地址。如果您在公司服务器上提供该文件,则不必与客户一起更新帮助文件

下一步是将控件(例如按钮)的HelpNavigator属性设置为HelpNavigator枚举的值(请参见下表)。这里我们使用主题。然后我们在hlpHtmlSever属性上将HelpKeyword设置为例如“anchor3”。不要添加前导“#”。如果要打开没有锚定的HTML文件,请将其保留为空。帮助处理cmdControl2。单击Dim sHelpFile As String Dim sStartupPath As String'---初始化上下文相关帮助---关键字属性提供检索与控件关联的帮助的关键信息


当应用程序运行时,单击帮助按钮以启用“What's this…”帮助。光标会改变。现在单击该按钮,或在该按钮具有焦点时按F1。这将在浏览器中通过Internet打开单个HTML文件。

基于
HTML文件的帮助
应该只有1个index.HTML,然后您可以使用默认浏览器打开该
index.HTML
。顺便说一句,我认为
Help
仅适用于
.chm
文件。根据MSDN,Help也适用于HTML文件。问题不在于它是否正常工作(因为它正常工作),而在于维护更改和最佳实践。它看起来确实支持
html
文件,但它最终调用一些默认浏览器来打开
html
文件。有一些工具可以实现这一点,比如Robohelp。你需要去购物。这里没有主题。同上index.html-很容易检查断开的链接。或将HTML移动到数据库中,并在需要时查看内容。这可以通过浏览器控件来实现。或查看HTA以显示index.htm文件-这比使用浏览器更好,但它可以打开安全漏洞,因为HTA与用户具有相同的PC访问权限。或使用RTF而不是HTML,并使用DB方法。