如何:为组件指定帮助文件
更新:2007 年 11 月
在大多数情况下,应该允许使用组件的开发人员启用运行时“帮助”。然而,在某些情况下,允许组件在被调用时显示 HTML 帮助是有意义的。通过 System.Windows.Forms.Help 对象可以为组件提供 HTML 帮助。该对象是封装 HTML 帮助 1.x 引擎的静态类。此类无法实例化,其方法必须直接调用。若要显示“帮助”,请调用 Help.ShowHelp 方法。此重载方法要求至少两个参数:作为“帮助”对话框父控件的控件和帮助文件的 URL。帮助文件可以是已编译的 HTML 帮助 1.x 文件(.chm 文件)或 HTML 帮助格式的 HTML 文件。
如果打算在组件中直接并入帮助文件支持,则有两个何时与如何显示它的选项:
首选选项实现一个可由客户端应用程序调用的“帮助”方法。客户端应用程序可以将参数传递给此“帮助”方法,以确保显示正确的主题,并确保编写组件代码的开发人员具有完全省略“帮助”的选项。
另一个选项在条件在代码中出现时为响应它们而调用 ShowHelp 方法。该方法对何时显示什么“帮助”提供了最大控制,但它严重限制了未来的开发人员对组件的使用。
为组件指定和显示帮助文件
创建和编译 .chm 帮助文件。
如果组件还没有对 System.Windows.Forms 命名空间的引用,请添加一个。
创建显示“帮助”的公共方法。此方法为开发人员提供了一条指定需要显示什么“帮助”的捷径。
' This method takes parameters from the client application that allow ' the developer to specify when Help is displayed. Public Sub DisplayHelp (ByVal parent as System.Windows.Forms.Control, _ ByVal topic as MyHelpEnum) ' The file to display is chosen by the value of the topic ' parameter. Select Case topic Case MyHelpEnum.enumWidgets Windows.Forms.Help.ShowHelp(parent, "C:\Help\Widgets.chm") Case MyHelpEnum.enumMechanisms ' Insert code to implement additional functionality. End Select End Sub
// This method takes parameters from the client application that allow // the developer to specify when Help is to be shown. public void MyHelp(System.Windows.Forms.Control parent, myHelpEnum topic) { // The file to display is chosen by the value of the topic. switch (topic) { case myHelpEnum.enumWidgets: System.Windows.Forms.Help.ShowHelp(parent, " C:\\help\\widgets.chm "); break; case myHelpEnum.enumMechanism: // Insert code to implement additional functionality. break; } }