|
.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ページが表示される。
利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス
使用ライブラリ:HelpNavigator列挙体(System.Windows.Forms名前空間)
使用ライブラリ:MessageBoxOptions列挙体(System.Windows.Forms名前空間)
関連TIPS:メッセージ・ボックスを表示するには?
関連TIPS:メッセージ・ボックスのデフォルト・ボタンを変更するには?
|
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間