2011-01-26 14 views
1

ありがとう、 ですから、基本的には、C#のWindowsフォームのメニューバーから 'ヘルプの表示'をクリックすると、ヘルプウィンドウで.chmファイルを開くようにしています。どうすればいい? .chmはプロジェクトのディレクトリにある必要がありますか? helpProviderコンポーネントを使って、.chmファイルに名前空間を設定しようとしましたが、アプリケーションを実行するとF1キーを押しても表示されません。メニューバーを取得する方法がわかりませんそれを表示する。メニューからchmを表示

ありがとうございました! dave k。

答えて

9

HelpProviderここでは、Helpクラスを使用します。まず、EXCファイルと同じディレクトリに.chmファイルを置くことは非常に良い考えです。プロジェクト>既存アイテムを追加>プロジェクトに追加されるように.chmファイルを選択します。ソリューションエクスプローラウィンドウでそれを選択し、プロパティウィンドウでビルドアクション=コンテンツ、出力ディレクトリにコピー=新しい場合はコピーを設定します。フォーム用

サンプルコード:

using System.IO; 
... 

    private void showMyHelp() { 
     string path = Path.GetDirectoryName(Application.ExecutablePath); 
     path = "file://" + Path.Combine(path, "example.chm"); 
     Help.ShowHelp(this, path); 
    } 
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
     if (keyData == Keys.F1) { 
      showMyHelp(); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 
    private void HelpButton_Click(object sender, EventArgs e) { 
     showMyHelp(); 
    } 
+1

私はあなたが私に必要なものを正確に教えてくれたと言わなければなりません。あなたの答えは非常に明確で簡潔でした!誰もがあなたのように質問に答えてほしいと思っています私はあなたにもっと多くの単なる "これは便利です"と願っています。ありがとう! –

+0

'Process.Start(Application.StartupPath +" \\ help.chm ");'のようなものはありません。 'Help.ShowHelp'やプロジェクトへの追加は、何か特別なことをしますか? –

+0

これは正式なヘルプAPIを使用しているため、最初に表示されているものを制御できます。マイクロソフトがこれまでとは異なるヘルプを表示することに決めると、それでも機能します。 –

0

Process.Start(Application.StartupPath + "\のHelp.chm");

関連する問題