Export (0) Print
Expand All

HelpProvider Class

Provides pop-up or online Help for controls.

For a list of all members of this type, see HelpProvider Members.

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Windows.Forms.HelpProvider

[Visual Basic]
Public Class HelpProvider
   Inherits Component
   Implements IExtenderProvider
[C#]
public class HelpProvider : Component, IExtenderProvider
[C++]
public __gc class HelpProvider : public Component,
   IExtenderProvider
[JScript]
public class HelpProvider extends Component implements
   IExtenderProvider

Thread Safety

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

Remarks

Each instance of HelpProvider maintains a collection of references to controls associated with it. To associate a Help file with the HelpProvider object, set the HelpNamespace property. You specify the type of Help provided by calling SetHelpNavigator and providing a HelpNavigator value for the specified control. You provide the keyword or topic for the Help by calling SetHelpKeyword.

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 HelpNamespace has not been set, you must use SetHelpString 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 Help to provide help functionality.

Example

[Visual Basic, C#, C++] The following example demonstrates using the the HelpProvider class to display context-sensitive Help on a form containing four address fields. The example uses the SetHelpString to set the Help ToolTip text. When using the context-sensitive Help button and clicking the Help cursor on an address field, the Help ToolTip appears with the specified text. When pressing 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 HelpProvider. SetShowHelp method is called for each address control to identify that it has Help content available.

[Visual Basic] 
Imports System
Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Inherits System.Windows.Forms.Form
    Private addressTextBox As System.Windows.Forms.TextBox
    Private label2 As System.Windows.Forms.Label
    Private cityTextBox As System.Windows.Forms.TextBox
    Private label3 As System.Windows.Forms.Label
    Private stateTextBox As System.Windows.Forms.TextBox
    Private zipTextBox As System.Windows.Forms.TextBox
    Private helpProvider1 As System.Windows.Forms.HelpProvider
    Private helpLabel As System.Windows.Forms.Label

    <STAThread()>  _
    Shared Sub Main()
        Application.Run(New Form1())
    End Sub 'Main
    
    Public Sub New()
        Me.addressTextBox = New System.Windows.Forms.TextBox()
        Me.helpLabel = New System.Windows.Forms.Label()
        Me.label2 = New System.Windows.Forms.Label()
        Me.cityTextBox = New System.Windows.Forms.TextBox()
        Me.label3 = New System.Windows.Forms.Label()
        Me.stateTextBox = New System.Windows.Forms.TextBox()
        Me.zipTextBox = New System.Windows.Forms.TextBox()

        ' Help Label
        Me.helpLabel.Location = New System.Drawing.Point(8, 80)
        Me.helpLabel.Size = New System.Drawing.Size(272, 72)
        Me.helpLabel.TabIndex = 1
        Me.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
        Me.label2.Location = New System.Drawing.Point(16, 8)
        Me.label2.Size = New System.Drawing.Size(100, 16)
        Me.label2.Text = "Address:"

        ' Comma Label
        Me.label3.Location = New System.Drawing.Point(136, 56)
        Me.label3.Size = New System.Drawing.Size(16, 16)
        Me.label3.Text = ","

        ' Creates the HelpProvider.
        Me.helpProvider1 = New System.Windows.Forms.HelpProvider()

        ' Tell the HelpProvider what controls to provide Help for, and
        ' what the Help string is.
        Me.helpProvider1.SetHelpString(Me.addressTextBox, "Enter the street address in this text box.")
        Me.helpProvider1.SetShowHelp(Me.addressTextBox, True)

        Me.helpProvider1.SetHelpString(Me.cityTextBox, "Enter the city here.")
        Me.helpProvider1.SetShowHelp(Me.cityTextBox, True)

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

        Me.helpProvider1.SetHelpString(Me.zipTextBox, "Enter the zip code here.")
        Me.helpProvider1.SetShowHelp(Me.zipTextBox, True)

        ' Sets what the Help file will be for the HelpProvider.
        Me.helpProvider1.HelpNamespace = "mspaint.chm"

        ' Set properties for the different address fields.

        ' Address TextBox
        Me.addressTextBox.Location = New System.Drawing.Point(16, 24)
        Me.addressTextBox.Size = New System.Drawing.Size(264, 20)
        Me.addressTextBox.TabIndex = 0
        Me.addressTextBox.Text = ""


        ' City TextBox
        Me.cityTextBox.Location = New System.Drawing.Point(16, 48)
        Me.cityTextBox.Size = New System.Drawing.Size(120, 20)
        Me.cityTextBox.TabIndex = 3
        Me.cityTextBox.Text = ""

        ' State TextBox
        Me.stateTextBox.Location = New System.Drawing.Point(152, 48)
        Me.stateTextBox.MaxLength = 2
        Me.stateTextBox.Size = New System.Drawing.Size(32, 20)
        Me.stateTextBox.TabIndex = 5
        Me.stateTextBox.Text = ""

        ' Zip TextBox
        Me.zipTextBox.Location = New System.Drawing.Point(192, 48)
        Me.zipTextBox.Size = New System.Drawing.Size(88, 20)
        Me.zipTextBox.TabIndex = 6
        Me.zipTextBox.Text = ""

        ' Add the controls to the form.
        Me.Controls.AddRange(New System.Windows.Forms.Control() { Me.zipTextBox, _
                                       Me.stateTextBox, Me.label3, _
                                       Me.cityTextBox, Me.label2, _
                                       Me.helpLabel, Me.addressTextBox})

        ' Set the form to look like a dialog, and show the HelpButton.    
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
        Me.HelpButton = True
        Me.MaximizeBox = False
        Me.MinimizeBox = False
        Me.ClientSize = New System.Drawing.Size(292, 160)
        Me.Text = "Help Provider Demonstration"

    End Sub 'New        
End Class 'Form1

[C#] 
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;

    [STAThread]
    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,
                                    this.addressTextBox});

        // 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";

    }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;

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

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 =  System::Drawing::Point(8, 80);
      this->helpLabel->Size =  System::Drawing::Size(272, 72);
      this->helpLabel->Text = S"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 =  System::Drawing::Point(16, 8);
      this->label2->Size =  System::Drawing::Size(100, 16);
      this->label2->Text = S"Address:";

      // Comma Label
      this->label3->Location =  System::Drawing::Point(136, 56);
      this->label3->Size =  System::Drawing::Size(16, 16);
      this->label3->Text = S", ";

      // 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, S"Enter the street address in this text box.");

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

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

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

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

      // Sets properties for the different address fields.

      // Address TextBox
      this->addressTextBox->Location =  System::Drawing::Point(16, 24);
      this->addressTextBox->Size =  System::Drawing::Size(264, 20);
      this->addressTextBox->TabIndex = 0;
      this->addressTextBox->Text = S"";

      // City TextBox
      this->cityTextBox->Location =  System::Drawing::Point(16, 48);
      this->cityTextBox->Size =  System::Drawing::Size(120, 20);
      this->cityTextBox->TabIndex = 3;
      this->cityTextBox->Text = S"";

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

      // Zip TextBox
      this->zipTextBox->Location =  System::Drawing::Point(192, 48);
      this->zipTextBox->Size =  System::Drawing::Size(88, 20);
      this->zipTextBox->TabIndex = 6;
      this->zipTextBox->Text = S"";

      // Add the controls to the form.

      System::Windows::Forms::Control* temp0 [] = {this->zipTextBox, this->stateTextBox,
         this->label3, this->cityTextBox,
         this->label2, this->helpLabel,
         this->addressTextBox};

      this->Controls->AddRange(temp0);

      // 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 =  System::Drawing::Size(292, 160);
      this->Text = S"Help Provider Demonstration";

   }
};

[STAThread]
int main() {
   Application::Run(new Form1());
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Windows.Forms

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

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

See Also

HelpProvider Members | System.Windows.Forms Namespace | Help

Show:
© 2014 Microsoft