サーチ…
備考
さまざまな方法で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");
}





