To drop a new HelpBuilderHelpProvider on a form:
The VS.Net designer generates all the necessary initialization code for you. If you're not using VS.NET or a visual environment you can use code like this:
// Object reference declaration private Westwind.Windows.Controls.HelpBuilderHelpProvider oHelp; // Initialization this.oHelp = new Westwind.Windows.Controls.HelpBuilderHelpProvider(); // Required property settings this.oHelp.HelpNamespace = "webmonitor.chm"; this.oHelp.ParentForm = this; // this is required! // Hooking up Controls for Help support (standard Help Provider behavior) this.oHelp.SetHelpKeyword(this.txtUrl, "_1a8114npo.htm"); this.oHelp.SetHelpNavigator(this.txtUrl, System.Windows.Forms.HelpNavigator.Topic); this.oHelp.SetHelpString(this.txtUrl, "");
To update an existing HelpProvider object to use HelpBuilderHelpProvider:
using Westwind.Windows.Controls; ... HelpBuilderHelpProvider.EnableHelpBuilderHelpProvider = true; HelpBuilderHelpProvider.HotkeyKey = Keys.F3; HelpBuilderHelpProvider.HotkeyModifier = Keys.Control;
By default this flag is set to true which means Help Builder will try to pop up on the special hotkey.
When this flag is set to false, the event hooks are simply ignored and the HelpBuilderHelpProvider acts like a standard HelpProvider object. This makes it easy to enable or disable Help Builder activation from your application.
For best results you probably want to use a configuration flag that determines whether this functionality is enabled or not and set it once at application startup. For example your startup code might look like this:
[STAThread] static void Main() { WebStoreConfig Config = new WebStoreConfig(); Config.GetSettingsFromConfig(); // *** Enable or disable Help Builder Editing at runtime HelpBuilderProvider.EnableHelpBuilderHelpProvider = Config.EnableHelpBuilderEditing; HelpBuilderHelpProvider.HotkeyKey = Keys.F1; HelpBuilderHelpProvider.HotkeyModifier = Keys.Control; Application.Run(new Form1()); }