HelpProvider Class
Collapse the table of content
Expand the table of content

HelpProvider Class


Provides pop-up or online Help for controls.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)


public class HelpProvider : Component, IExtenderProvider


Initializes a new instance of the HelpProvider class.


Gets a value indicating whether the component can raise an event.(Inherited from Component.)


Gets the IContainer that contains the Component.(Inherited from Component.)


Gets a value that indicates whether the Component is currently in design mode.(Inherited from Component.)


Gets the list of event handlers that are attached to this Component.(Inherited from Component.)


Gets or sets a value specifying the name of the Help file associated with this HelpProvider object.


Gets or sets the ISite of the Component.(Inherited from Component.)


Gets or sets the object that contains supplemental data about the HelpProvider.


Specifies whether this object can provide its extender properties to the specified object.


Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.(Inherited from MarshalByRefObject.)


Releases all resources used by the Component.(Inherited from Component.)


Releases the unmanaged resources used by the Component and optionally releases the managed resources.(Inherited from Component.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Releases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection.(Inherited from Component.)


Serves as the default hash function. (Inherited from Object.)


Returns the Help keyword for the specified control.


Returns the current HelpNavigator setting for the specified control.


Returns the contents of the pop-up Help window for the specified control.


Retrieves the current lifetime service object that controls the lifetime policy for this instance.(Inherited from MarshalByRefObject.)


Returns an object that represents a service provided by the Component or by its Container.(Inherited from Component.)


Returns a value indicating whether the specified control's Help should be displayed.


Gets the Type of the current instance.(Inherited from Object.)


Obtains a lifetime service object to control the lifetime policy for this instance.(Inherited from MarshalByRefObject.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Creates a shallow copy of the current MarshalByRefObject object.(Inherited from MarshalByRefObject.)


This API supports the product infrastructure and is not intended to be used directly from your code. Removes the Help associated with the specified control.

System_CAPS_pubmethodSetHelpKeyword(Control, String)

Specifies the keyword used to retrieve Help when the user invokes Help for the specified control.

System_CAPS_pubmethodSetHelpNavigator(Control, HelpNavigator)

Specifies the Help command to use when retrieving Help from the Help file for the specified control.

System_CAPS_pubmethodSetHelpString(Control, String)

Specifies the Help string associated with the specified control.

System_CAPS_pubmethodSetShowHelp(Control, Boolean)

Specifies whether Help is displayed for the specified control.


This API supports the product infrastructure and is not intended to be used directly from your code. Returns a string that represents the current HelpProvider.(Overrides Component.ToString().)


Occurs when the component is disposed by a call to the Dispose method. (Inherited from Component.)

Each instance of HelpProvider maintains a collection of references to controls associated with it. To associate a Help file with the HelpProvider, set the HelpNamespace property. You specify the type of Help provided by calling the SetHelpNavigator method and providing a HelpNavigator value for the specified control. You provide the keyword or topic for the Help by calling the SetHelpKeyword method. To open Help to a specific topic, the keyword should be passed in the form topicName.htm.

To associate a specific Help string with a control, use the SetHelpString method. The string that you associate with a control using this method is displayed in a pop-up window when the user presses the F1 key while the control has focus.

If the HelpNamespace property has not been set, you must use the SetHelpString method to provide the Help text. If you have set both HelpNamespace and the Help string, Help based on the HelpNamespace will take precedence.

HelpProvider calls methods on the Help class to provide Help functionality.

The following code example demonstrates using the HelpProvider class to display context-sensitive Help on a form containing four address fields. The example uses the SetHelpString method to set the Help ToolTip text. When you use the context-sensitive Help button and click the Help cursor on an address field, the Help ToolTip appears with the specified text. When you press the F1 key with the focus in an address field, the mspaint.chm Help file is displayed because the HelpNamespace property has been set to mspaint.chm. The SetShowHelp method is called for each address control to identify that it has Help content available.

using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
	private System.Windows.Forms.TextBox addressTextBox;
	private System.Windows.Forms.Label label2;
	private System.Windows.Forms.TextBox cityTextBox;
	private System.Windows.Forms.Label label3;
	private System.Windows.Forms.TextBox stateTextBox;
	private System.Windows.Forms.TextBox zipTextBox;
	private System.Windows.Forms.HelpProvider helpProvider1;
	private System.Windows.Forms.Label helpLabel;

    static void Main() 
        Application.Run(new Form1());

	public Form1()
        this.addressTextBox = new System.Windows.Forms.TextBox();
        this.helpLabel = new System.Windows.Forms.Label();
        this.label2 = new System.Windows.Forms.Label();
        this.cityTextBox = new System.Windows.Forms.TextBox();
        this.label3 = new System.Windows.Forms.Label();
        this.stateTextBox = new System.Windows.Forms.TextBox();
        this.zipTextBox = new System.Windows.Forms.TextBox();

        // Help Label
        this.helpLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
        this.helpLabel.Location = new System.Drawing.Point(8, 80);
        this.helpLabel.Size = new System.Drawing.Size(272, 72);
        this.helpLabel.Text = "Click the Help button in the title bar, then click a control " + 
            "to see a Help tooltip for the control.  Click on a control and press F1 to invoke " +
            "the Help system with a sample Help file.";

        // Address Label
        this.label2.Location = new System.Drawing.Point(16, 8);
        this.label2.Size = new System.Drawing.Size(100, 16);
        this.label2.Text = "Address:";

        // Comma Label
        this.label3.Location = new System.Drawing.Point(136, 56);
        this.label3.Size = new System.Drawing.Size(16, 16);
        this.label3.Text = ",";

        // Create the HelpProvider.
        this.helpProvider1 = new System.Windows.Forms.HelpProvider();

        // Tell the HelpProvider what controls to provide help for, and
        // what the help string is.
        this.helpProvider1.SetShowHelp(this.addressTextBox, true);
        this.helpProvider1.SetHelpString(this.addressTextBox, "Enter the street address in this text box.");

        this.helpProvider1.SetShowHelp(this.cityTextBox, true);
        this.helpProvider1.SetHelpString(this.cityTextBox, "Enter the city here.");

        this.helpProvider1.SetShowHelp(this.stateTextBox, true);
        this.helpProvider1.SetHelpString(this.stateTextBox, "Enter the state in this text box.");

        this.helpProvider1.SetShowHelp(this.zipTextBox, true);
        this.helpProvider1.SetHelpString(this.zipTextBox, "Enter the zip code here.");

        // Set what the Help file will be for the HelpProvider.
        this.helpProvider1.HelpNamespace = "mspaint.chm";

        // Sets properties for the different address fields.

        // Address TextBox
        this.addressTextBox.Location = new System.Drawing.Point(16, 24);
        this.addressTextBox.Size = new System.Drawing.Size(264, 20);
        this.addressTextBox.TabIndex = 0;
        this.addressTextBox.Text = "";

        // City TextBox
        this.cityTextBox.Location = new System.Drawing.Point(16, 48);
        this.cityTextBox.Size = new System.Drawing.Size(120, 20);
        this.cityTextBox.TabIndex = 3;
        this.cityTextBox.Text = "";

        // State TextBox
        this.stateTextBox.Location = new System.Drawing.Point(152, 48);
        this.stateTextBox.MaxLength = 2;
        this.stateTextBox.Size = new System.Drawing.Size(32, 20);
        this.stateTextBox.TabIndex = 5;
        this.stateTextBox.Text = "";

        // Zip TextBox
        this.zipTextBox.Location = new System.Drawing.Point(192, 48);
        this.zipTextBox.Size = new System.Drawing.Size(88, 20);
        this.zipTextBox.TabIndex = 6;
        this.zipTextBox.Text = "";

        // Add the controls to the form.
        this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                    this.zipTextBox, this.stateTextBox,
                                    this.label3, this.cityTextBox,
                                    this.label2, this.helpLabel,

        // Set the form to look like a dialog, and show the HelpButton.    
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
        this.HelpButton = true;
        this.MaximizeBox = false;
        this.MinimizeBox = false;
        this.ClientSize = new System.Drawing.Size(292, 160);
        this.Text = "Help Provider Demonstration";


.NET Framework
Available since 1.1

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
© 2015 Microsoft