ヘルプファイルを作ったことはありますが、このコンポーネントは使ったこと無いと思う。多分。
あ、Help.ShowHelp なら使った事あるんだった。
SetHelpKeyword で日本語を渡すとそのまま渡すと化けてしまいます。
また、2 バイト文字じゃない文字列を渡しても、先頭の 1 文字でちょん切られてしまいます。
なんでじゃろ。そういう仕様なのかな。
ちなみに、chm ファイルを作成する時にいつもお世話になっているのは、↓こちら。
ヘルプましん
■参考文献
HelpProvider コンポーネント (Windows フォーム)
Windows フォームでのヘルプの統合
HelpProvider クラス
HelpNavigator 列挙体
■実行画像
適当に作った画面
なまえ の TextBox1 を Active にした状態で、F1 を押下した時にでるヘルプ(HelpKeyword)
性別 の TextBox2 を Active にした状態で、F1 を押下した時にでるヘルプ(HelpNavigator)
Button1 を Active にした状態で、F1 を押下した時にでるヘルプ(HelpString)
CheckBox1 を Active にした状態で、F1 を押下した時にでるヘルプ(Form の HelpString)
Public Class HelpProviderTest
Private Const HELP_NAME_SPACE As String = "D:\わんくま\いぬのへるぷ.chm"
Private Sub HelpProviderTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'' ヘルプファイルを使ったヘルプ
With Me.HelpProvider1
' ヘルプの指定
.HelpNamespace = HELP_NAME_SPACE
' キーワードに n が指定された状態でヘルプが開く
.SetHelpKeyword(Me.TextBox1, "n")
.SetHelpKeyword(Me.TextBox2, "s")
' ヘルプ削除
.ResetShowHelp(Me.TextBox2)
' 指定されたトピックの最初の文字のインデックス エントリが表示された状態でヘルプが開く
.SetHelpNavigator(Me.TextBox1, HelpNavigator.AssociateIndex)
' 目次の状態でヘルプが開く
.SetHelpNavigator(Me.TextBox2, HelpNavigator.TableOfContents)
End With
'' ヘルプファイルを使わないヘルプ
Me.HelpButton = True
With Me.HelpProvider2
' ヘルプのテキストを設定
.SetHelpString(Me.Button1, "押下すると登録するかもしれないししないかもしれないよ")
' Form 自体に SetHelpString をすると、何も設定されていないところで
' このメッセージが表示されるみたい
.SetHelpString(Me, "いぬのなまえと性別をにゅうりょくしてね")
' ヘルプを有効にするかしないかの設定
.SetShowHelp(Me.Button1, True)
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("ヘルプの状態をイミディエイトウィンドウに出力します。", _
"メッセージボックスのヘルプテスト", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information, _
MessageBoxDefaultButton.Button2, _
MessageBoxOptions.RightAlign, _
HELP_NAME_SPACE)
With Me.HelpProvider1
' TextBox1
System.Diagnostics.Debug.WriteLine("◆TextBox1◆")
System.Diagnostics.Debug.WriteLine("HelpKeyword:" & .GetHelpKeyword(Me.TextBox1))
System.Diagnostics.Debug.WriteLine("HelpNavigator:" & .GetHelpNavigator(Me.TextBox1).ToString())
System.Diagnostics.Debug.WriteLine("HelpString:" & .GetHelpString(Me.TextBox1))
System.Diagnostics.Debug.WriteLine("ShowHelp:" & .GetShowHelp(Me.TextBox1).ToString())
End With
With Me.HelpProvider2
' Button1
System.Diagnostics.Debug.WriteLine("◆Button1◆")
System.Diagnostics.Debug.WriteLine("HelpKeyword:" & .GetHelpKeyword(Me.Button1))
System.Diagnostics.Debug.WriteLine("HelpNavigator:" & .GetHelpNavigator(Me.Button1).ToString())
System.Diagnostics.Debug.WriteLine("HelpString:" & .GetHelpString(Me.Button1))
System.Diagnostics.Debug.WriteLine("ShowHelp:" & .GetShowHelp(Me.Button1).ToString())
End With
End Sub
End Class