サーチ…
備考
さまざまな方法でWindowsフォームアプリケーションのフォームとコントロールのヘルプを提供することができます。ポップアップヘルプを表示したり、CHMファイルまたはURLを開くことができます。フォーム、コントロール、ダイアログに状況依存のヘルプを表示することができます。
HelpProviderコンポーネント
HelpProvider
コンポーネントをセットアップして、コンポーネントに対する状況依存ヘルプを提供することができます。 F1キーまたはフォームのヘルプボタンを押すと、次のように自動的に実行されます。
- コントロールのコンテキストヘルプのポップアップを表示する
- コンテキストに基づいたCHMファイルを開く(目次を表示する、キーワードまたはインデックスを表示する、トピックを表示する)
- デフォルトブラウザを使用してURLに移動する
ヘルプクラス
コードでHelp
クラスを使用して、次のようなHelp
を提供できます。
- コントロールのヘルプポップアップを表示する
- コンテキストに基づいたCHMファイルを開く(目次を表示する、キーワードまたはインデックスを表示する、トピックを表示する)
- デフォルトブラウザを使用してURLに移動する
HelpRequestedイベント
ユーザーがF1キーを押すかForm
ヘルプボタンをクリックすると、 Control
オブジェクトまたはForm
HelpRequested
イベントを処理してカスタムアクションを実行できます。
フォームのヘルプボタン
タイトルバーに[ヘルプ]ボタンを表示するようにForm
を設定できます。このようにして、ユーザーがヘルプボタンをクリックすると、カーソルは?
変わり?
任意の点をクリックすると、 HelpProvider
を使用してコントロールに関連付けられた状況依存ヘルプが表示されます。
MessgeBoxとCommonDialogsのヘルプボタン
コンポーネントのヘルプボタンを使用して、 MessageBox
、 OpenFileDialog
、 SaveDialog
、およびColorDialog
ヘルプを提供することができます。
ツールチップコンポーネント
ユーザーがコントロールをポイントすると、 ToolTip
コンポーネントを使用してヘルプテキストを表示できToolTip
。 ToolTip
は、任意のコントロールに関連付けることができます。
注意
HelpProvider
とHelp
クラスの使用コンパイルされたヘルプファイル(.chm)またはHTMLファイルをHTMLヘルプ形式で表示できます。コンパイルされたヘルプファイルは、目次、索引、検索機能、およびページ内のキーワードリンクを提供します。ショートカットは、コンパイルされたヘルプファイルでのみ機能します。 HTMLヘルプワークショップを使用すると、HTMLヘルプ1.xファイルを生成できます。 HTMLヘルプの詳細については、 Microsoft HTMLヘルプの 「HTMLヘルプワークショップ」およびその他のHTMLヘルプトピックを参照してください。
ヘルプファイルを表示する
Help Class
は、HTML Help 1.0エンジンをカプセル化します。ヘルプオブジェクトを使用して、コンパイル済みヘルプファイル(.chm)またはHTMLファイルをHTMLヘルプ形式で表示することができます。コンパイルされたヘルプファイルは、ページ内の目次、索引、検索、およびキーワードのリンクを提供します。ショートカットは、コンパイルされたヘルプファイルでのみ機能します。 HTML Help Workshop
と呼ばれるMicrosftの無料ツールを使用して、HTMLヘルプ1.xファイルを生成することができます。
コンパイルされたヘルプファイルを2番目のウィンドウに表示する簡単な方法:
C#
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
MessageBoxのヘルプを表示する
メッセージボックスのヘルプは、さまざまな方法で提供できます。 Help
ボタンを表示するようにMessageBox
を構成できます。また、ユーザーがヘルプボタンをクリックするか、 F1キーを押してヘルプを要求したときに、CHMファイルを表示したり、URLに移動したり、カスタムアクションを実行したりできるようにMessageBox
を構成できます。このトピックのいくつかの例を示します。
以下のすべての例では、 MessageBox
は次のようになります。
CHMファイルを表示し、キーワード(索引)に移動します。
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
CHMファイルを表示してトピックに移動する
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
CHMファイルを表示し、目次内の最初のヘルプページをナビゲートする
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
デフォルトブラウザを開き、URLにナビゲートする
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
ヘルプボタンまたはF1キーを押したときにカスタムアクションを実行する
この場合、 MessageBox
のparentのHelpRequested
イベントを処理し、カスタム操作を実行する必要があります。
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
次に、 MessageBox
with Helpボタンを表示することができます。
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
または、ヘルプボタンを表示しないでください:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
CommonDialogsのヘルプを表示する
OpenFileDialog
、 SaveFileDialog
、 ColorDialog
ヘルプを提供することができます。これを行うには、ダイアログのShowHelp
プロパティをtrue
設定し、ダイアログのHelpRequest
イベントを処理しtrue
。
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
注意
-
ShowHelp
をtrue
設定した場合にのみイベントがShowHelp
しtrue
。 - このイベントは、[
Help
]ボタンをクリックするだけで発生し、F1キーでは発生しません。
下の画像には、[ヘルプ]ボタンがあるOpenFileDialog
があります。
コントロールとフォームのHelpRequestedイベントの処理
ユーザーがコントロール上でF1キーを押すか 、フォーム( ? )のヘルプボタンをクリックしてコントロールをクリックすると、 HelpRequested
イベントが発生します。
このイベントを処理して、ユーザーがコントロールまたはフォームのヘルプを要求したときにカスタムアクションを提供できます。
HelpRequested
は、バブルアップメカニズムをサポートしています。あなたのアクティブコントロールに対して起動します。イベントを処理せず、そのイベントargのHandled
プロパティをtrue
に設定しないと、親コントロール階層までフォームが形成されます。
たとえば、次のようなフォームのHelpRequested
イベントを処理HelpRequested
場合、 F1キーを押すとアクティブなコントロールの名前がメッセージボックスに表示されますが、 textBox1
場合は別のメッセージが表示されます。
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
var c = this.ActiveControl;
if(c!=null)
MessageBox.Show(c.Name);
}
private void textBox1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
hlpevent.Handled = true;
MessageBox.Show("Help request handled and will not bubble up");
}
URLへのナビゲートやHelp
クラスを使用したCHMファイルの表示など、他のカスタムアクションを実行できます。
ヘルプクラスを使用してヘルプを表示する
コードでHelp
クラスを使用して、次のようなHelp
を提供できます。
- コントロールのヘルプポップアップを表示する
- コンテキストに基づいたCHMファイルを開く(目次を表示する、キーワードまたはインデックスを表示する、トピックを表示する)
- デフォルトブラウザを使用してURLに移動する
ヘルプを表示するポップアップウィンドウ
Help.ShowPopup
を使用すると、ヘルプポップアップウィンドウを表示できます。
private void control_MouseClick(object sender, MouseEventArgs e)
{
var c = (Control)sender;
var help = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
if (c != null)
Help.ShowPopup(c, "Lorem ipsum dolor sit amet.", c.PointToScreen(e.Location));
}
マウスポインタの位置にヘルプのポップアップが表示されます:
CHMヘルプファイルを表示する
Help.ShowHelp
メソッドのさまざまなオーバーロードを使用してCHMファイルを表示し、キーワード、トピック、インデックスまたはコンテンツテーブルに移動できます。
ヘルプの目次を表示する
Help.ShowHelp(this, "Help.chm");
特定のキーワード(索引)のヘルプを表示する
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
特定のトピックのヘルプを表示する
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
URLを表示
ShowHelp
メソッドを使用して、デフォルトのブラウザに任意のURLを表示できます。
Help.ShowHelp(this, "Http://example.com");
フォームのタイトルバーにヘルプボタンを表示する
Form
タイトルバーにヘルプボタンを表示することができForm
。これを行うには、以下を行う必要があります。
- フォームの
HelpButton
プロパティをtrue
設定しtrue
。 -
MinimizeBox
とMaximizeBox
をfalse
設定しfalse
。
Form
タイトルバーにヘルプボタンが表示されForm
:
また、ヘルプボタンをクリックすると、カーソルが?
変わり?
カーソル:
あなたはをクリックした場合、その後Control
やForm
、 HelpRequested
イベントが発生します、あなたが設定している場合もHelpProvider
、コントロールのヘルプを使用して表示されますHelpProvider
。
標準のフォームヘルプボタンのように機能するカスタムヘルプボタンを作成する
あなたが持っている場合はForm
でMinimizeBox
とMaximizeBox
に設定しtrue
、あなたはのタイトルバー上の[ヘルプ]ボタンを表示することはできませんForm
とカーソルがにコントロールをクリックできるように支援するために、それを変換するために、ヘルプボタンをクリックしの機能を失うことになりますヘルプを表示します。
MenuStrip
メニュー項目を標準のヘルプボタンのように動作させることができます。これを行うには、フォームにMenuStrip
を追加し、 ToolStripMenuItem
を追加して、アイテムのClick
イベントを処理Click
ます。
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_CONTEXTHELP = 0xF180;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
}
注: Button
を使用して操作する場合は、 button1.Capture = false;
を設定する必要もありbutton1.Capture = false;
メッセージを送信する前にただし、 ToolStripMenuItem
では必要ありません。
その後、ヘルプメニューをクリックすると、カーソルは?
に変わり?
標準ヘルプボタンをクリックしたときと同じように動作します:
フォームのHelpButtonClickedイベントの処理
ユーザーがクリックしたときには、検出することができますHelpButton
取り扱うことにより、フォームのタイトルバー上のHelpButtonClicked
。イベントargsのCancel
プロパティをtrue
設定することにより、イベントの継続またはキャンセルを許可することができtrue
。
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}