[HelpProvider][Tips] ポップアップヘルプを表示する

HelpProviderを使用すると、ポップアップヘルプを表示することができます。

ポップアップヘルプは、タイトルバーにある[?]ボタンをクリックした後、目的のコントロールをクリックするか、コントロールを選択状態にしてから[F1]キーを押すことで表示できます。

はじめに[?]ボタンを表示する方法ですが、HelpButtonプロパティにTrueを設定します。このときフォームの最小化ボタン(MinimizeBoxプロパティ)と最大化ボタン(MaximizeBoxプロパティ)にFalseを設定する必要があることに注意してください。

次に、コントロールに割り当てるヘルプ文字列ですが、SetHelpStringメソッドで設定します。第1引数にはヘルプ文字列を設定するコントロールを、第2引数にはヘルプ文字列を指定します。

下記はポップアップヘルプを表示する例です。

Buttonコントロール、CheckBoxコントロール、RadioButtonコントロールにヘルプ文字列を設定しています。

VBの例

' フォームロード時の処理
Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '最小化ボタンと最大化ボタンを無効にする
    Me.MinimizeBox = False
    Me.MaximizeBox = False

    'ヘルプボタンを表示する
    Me.HelpButton = True

    'コントロールにヘルプ文字列を設定する
    HelpProvider1.SetHelpString(Button1, "これはButton1です")
    HelpProvider1.SetHelpString(CheckBox1, "これはCheckBox1です")
    HelpProvider1.SetHelpString(RadioButton1, "これはRadioButton1です")
End Sub

C#の例

// フォームロード時の処理
private void Form3_Load(object sender, EventArgs e)
{
    // 最小化ボタンと最大化ボタンを無効にする
    this.MinimizeBox = false;
    this.MaximizeBox = false;

    // ヘルプボタンを表示する
    this.HelpButton = true;

    // コントロールにヘルプ文字列を設定する
    helpProvider1.SetHelpString(button1, "これはbutton1です");
    helpProvider1.SetHelpString(checkBox1, "これはcheckBox1です");
    helpProvider1.SetHelpString(radioButton1, "これはradioButton1です");
}

[HelpProvider][Tips] ヘルプファイルのどの要素を表示するかを設定する


SetHelpNavigatorメソッドを使用すると、ヘルプファイルを開くときに、どの要素を表示するかを設定することができます。

第1引数にはコントロールを、第1引数にはどの要素を表示するかを設定します。要素にはHelpNavigator列挙体の値を指定します。

 

HelpNavigator列挙体
メンバー名 説明
Topic ヘルプファイルに指定したトピックが存在する場合は、そのトピックを表示する
TableOfContents ヘルプファイルの目次が表示される
Index ヘルプファイルのインデックスが表示される
Find ヘルプファイルの検索ページが表示される
AssociateIndex 指定したトピックの最初の文字インデックスエントリが表示される
KeywordIndex 指定されたインデックスエントリを持つトピックが存在する場合はトピックを表示し、存在しない場合は指定したキーワードに最も近いインデックスエントリを持つトピックが表示される
Topicid トピックの数値識別子で指定されたトピックが表示される

下記は、ヘルプファイルのどの要素を表示するかを設定する例です。

TableOfContentsを指定して目次を表示するようにしています。

VBの例

' フォームロード時の処理
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'ヘルプファイルを設定する
    HelpProvider1.HelpNamespace = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\spyxx.chm"
    'キーワードに"s"を設定
    HelpProvider1.SetHelpKeyword(TextBox1, "s")
    '★★★目次を開く★★★
    HelpProvider1.SetHelpNavigator(TextBox1, HelpNavigator.TableOfContents)
End Sub

C#の例

// フォームロード時の処理
private void Form2_Load(object sender, EventArgs e)
{
    // ヘルプファイルを設定する
    helpProvider1.HelpNamespace = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\spyxx.chm";
    // キーワードに"s"を設定
    helpProvider1.SetHelpKeyword(textBox1, "s");
    // ★★★目次を開く★★★
    helpProvider1.SetHelpNavigator(textBox1, HelpNavigator.TableOfContents);
}

[HelpProvider][Tips] ヘルプファイルを開く


HelpProviderコンポーネントを使用してヘルプファイルを開くには、まずHelpNamespaceプロパティにヘルプファイルのパスを設定します。

次にSetHelpKeywordメソッドを使用して、ユーザーが指定したコントロールの、ヘルプを検索するキーワードを指定します。第1引数にコントロールを、第2引数にキーワードを指定します。

下記は、ヘルプファイルを開く例です。

TextBoxにフォーカスがあるときに[F1]キーを押すと、検索キーワードに”s”が入力された状態でヘルプファイルを開きます。

VBの例

' フォームロード時の処理
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'ヘルプファイルを設定する
    HelpProvider1.HelpNamespace = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\spyxx.chm"
    'キーワードに"s"が入力された状態でヘルプを開く
    HelpProvider1.SetHelpKeyword(TextBox1, "s")
End Sub

C#の例

// フォームロード時の処理
private void Form1_Load(object sender, EventArgs e)
{
    // ヘルプファイルを設定する
    helpProvider1.HelpNamespace = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\spyxx.chm";
    // キーワードに"s"が入力された状態でヘルプを開く
    helpProvider1.SetHelpKeyword(textBox1, "s");
}