.NET TIPS

メッセージ・ボックスからヘルプを表示するには?[2.0のみ、C#、VB]

デジタルアドバンテージ 一色 政彦
2006/08/11

 「TIPS:メッセージ・ボックスを表示するには?」や「TIPS:メッセージ・ボックスのデフォルト・ボタンを変更するには?」では、Windowsフォームなどのアプリケーション上でメッセージ・ボックスを表示する方法について紹介した。

 .NET Framework 2.0では、これらのTIPSで紹介したメッセージ・ボックスの機能対し、ヘルプを表示するための機能が追加されている。これにより、メッセージ・ボックスからコンパイル済みヘルプ・ファイル(.chmファイル)やヘルプ情報を記述したWebページなどを表示させることができる。

 具体的には、MessageBoxクラス(System.Windows.Forms名前空間)のShowメソッドのオーバーロードが追加された。このメソッドの構文は次のとおりだ。

public static DialogResult Show (
    string text,
    string caption,
    MessageBoxButtons buttons,
    MessageBoxIcon icon,
    MessageBoxDefaultButton defaultButton,
    MessageBoxOptions options,  // ←既定でよければ0を指定する
    string helpFilePath,        // 7番目:ヘルプ・ファイル・パス
    HelpNavigator navigator,    // 8番目:ヘルプの開始ページ
    Object param                // 9番目:検索キーワードなど
)
Public Shared Function Show ( _
    text As String, _
    caption As String, _
    buttons As MessageBoxButtons, _
    icon As MessageBoxIcon, _
    defaultButton As MessageBoxDefaultButton, _
    options As MessageBoxOptions, _ ' ←既定でよければ0を指定する
    helpFilePath As String, _       ' 7番目:ヘルプ・ファイル・パス
    navigator As HelpNavigator, _   ' 8番目:ヘルプの開始ページ
    param As Object _               ' 9番目:検索キーワードなど
) As DialogResult
ヘルプを表示できるバージョンのMessageBox.Showメソッド(上:C#、下:VB)
厳密にいうと、MessageBox.Showメソッドには、これ以外にも、ヘルプを表示するためのオーバーロードがいくつか追加されているが、ここでは最も代表的なバージョンのものを示している。

 このように、7番目のパラメータに「コンパイル済みヘルプ・ファイル(.chmファイル)のパス」もしくは「インターネットやイントラネット、ローカル・ディスク上のHTMLファイルへのURL」を、8番目のパラメータに「ヘルプの開始ページ」を示すHelpNavigator列挙体(System.Windows.Forms名前空間)の値を、9番目のパラメータに「検索キーワード」や「ヘルプ・トピックID」などを文字列で指定する。

 代表的なHelpNavigator列挙体の値には次のものがある(より詳しくは「MSDN:HelpNavigator 列挙体 (System.Windows.Forms)」を参照されたい)。

HelpNavigator列挙体の値 説明 9番目のパラメータの指定
TableOfContents [目次]タブが開く 不要
Index [キーワード]タブが開く 不要
Find [検索]タブが開く 不要
KeywordIndex [キーワード]タブが開き、検索キーワードを含むトピックが存在する場合はそのトピックが表示される。そのようなトピックが存在しない場合、指定されたキーワードに最も近いキーワードを含むページが表示される キーワード文字列
Topic 9番目のパラメータに指定したファイル名のページが開く ページのファイル名(例えば「index.htm」など)。コンパイル済みヘルプ・ファイルの中身はHTMLファイルなので、そのファイル名を指定する
TopicId 9番目のパラメータに指定したトピックIDのページが開く トピックIDとなる数字文字列(例えば「1001」など)
代表的なHelpNavigator列挙体の値の種類

 なお6番目のパラメータにはMessageBoxOptions列挙体(System.Windows.Forms名前空間)の値を設定することにより、メッセージ・ボックスのオプションを指定できる。指定可能な代表的なオプションを以下にまとめた(これらの値を組み合わせて指定したい場合は、ビットごとのOR演算を行って指定すればよい。また、オプションを指定しない場合には、列挙体の値の代わりに「0」を指定すればよい)。

MessageBoxOptions列挙体の値 説明
RightAlign メッセージ・ボックスのテキストを右揃えで表示する
RtlReading メッセージ・ボックスのボタンなどを右から左へ並べ、テキストを右から左へ読むように指定する
MessageBoxOptions列挙体の値の種類
このほかに「DefaultDesktopOnly」(=既定のデスクトップにのみメッセージ・ボックスを表示するオプション)や「ServiceNotification」(=Windowsサービスからの通知メッセージとして、現在、アクティブなデスクトップにメッセージ・ボックスを表示するオプション)などのオプションがあるが、これらのオプションは本稿で解説しているヘルプ表示機能と併用できないようだ。

 以上の内容を理解したら、さっそくメッセージ・ボックスからヘルプを表示するサンプル・プログラムを記述してみよう。次のコードは、キーワードを指定してヘルプを開くサンプル・プログラムだ。なお、このプログラムで開くヘルプ・ファイルは、メモ帳(notepad.exe)のヘルプ・ファイル(notepad.chm)である。

private void button1_Click(object sender, System.EventArgs e)
{
  DialogResult dr = MessageBox.Show(
    "削除してもいいですか?",
    "確認",
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Question,
    MessageBoxDefaultButton.Button3,
    0,
    @"C:\WINDOWS\Help\notepad.chm", // 7番目
    HelpNavigator.KeywordIndex,     // 8番目
    "フッター");                    // 9番目
}
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim dr As DialogResult = MessageBox.Show( _
    "削除してもいいですか?", _
    "確認", _
    MessageBoxButtons.YesNo, _
    MessageBoxIcon.Question, _
    MessageBoxDefaultButton.Button3, _
    0, _
    "C:\WINDOWS\Help\notepad.chm", _
    HelpNavigator.KeywordIndex, _
    "フッター")
End Sub
ヘルプを表示できるメッセージ・ボックスのソース・コード(上:C#、下:VB)

 このプログラムを実行したのが次の画面である。



ヘルプを表示できるメッセージ・ボックスの実行結果
プログラム・コードの記述どおりに、「C:\WINDOWS\Help\notepad.chm」が表示され、「フッター」というキーワードを含むページが開かれる。
  [メッセージボックス表示]ボタンを押すと、メッセージ・ボックスが表示される。
  メッセージ・ボックスの[ヘルプ]ボタンをクリックするとヘルプが表示される。

 先述したが、7番目の指定は「コンパイル済みヘルプ・ファイル(.chmファイル)のパス」だけでなく、「インターネットやイントラネット、ローカル・ディスク上のHTMLファイルへのURL」でもOKだ。例えば
   「http://www.atmarkit.co.jp/fdotnet/」
を指定した場合、ヘルプ・ファイルの代わりにブラウザが立ち上がり、Webページが表示される。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス
使用ライブラリ:HelpNavigator列挙体(System.Windows.Forms名前空間)
使用ライブラリ:MessageBoxOptions列挙体(System.Windows.Forms名前空間)
関連TIPS:メッセージ・ボックスを表示するには?
関連TIPS:メッセージ・ボックスのデフォルト・ボタンを変更するには?

この記事と関連性の高い別の.NET TIPS
メッセージ・ボックスを表示するには?
メッセージ・ボックスのデフォルト・ボタンを変更するには?
列挙体の名前を列挙するには?
列挙体の値を列挙するには?
Windowsアプリケーション終了時に確認ダイアログを表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間