0

多数のヘルプ ボタンを含む C# プロジェクトがあります。これらのボタンのいずれかをクリックすると、ヘルプ ファイル (Help.chm) が開き、関連するページが表示されます。ページの 1 つに対してこれを行うコードを次に示します。

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "hh.exe";
startInfo.Arguments = "Help.chm::/html/97198ffa-adb2-4897-b5e4-5bba54252900.htm";//page id
Process.Start(startInfo);

これは問題なく動作しますが、ユーザーが別のヘルプ ボタン (または同じボタン) をクリックすると、新しいヘルプ ファイルが開き、多くの冗長な chm ファイルが開いたままになる可能性があります。ヘルプ ファイルが既に開いている場合、代わりにページを変更する方法はありますか? コマンドラインからこれを行う方法がある場合は、それから始めるのが良いでしょう。

4

1 に答える 1

3

前に Helen が述べたように、Help.ShowHelp メソッドの使用を強くお勧めします。

    private void btnHelpTopic1_Click(object sender, EventArgs e)
    {
        // sHTMLHelpFileName_ShowWithNavigationPane = "CHM-example_ShowWithNavigationPane.chm"
        // This is a HelpViewer Window with navigation pane for show case only 
        // created with Microsoft HTMLHelp Workshop
        helpProvider1.HelpNamespace = Application.StartupPath + @"\" + sHTMLHelpFileName_ShowWithNavigationPane;
        Help.ShowHelp(this, helpProvider1.HelpNamespace, @"/Garden/tree.htm");
    }

    private void btnHelpTopic2_Click(object sender, EventArgs e)
    {
        helpProvider1.HelpNamespace = Application.StartupPath + @"\" + sHTMLHelpFileName_ShowWithNavigationPane;
        Help.ShowHelp(this, helpProvider1.HelpNamespace, @"/Garden/flowers.htm");
    }

コードと小さな GUI (スナップを添付) をご覧ください。ユーザーがボタンをクリックすると、トピックが更新されます (例: Help Topic1)。Microsoft HTMLHelp Workshop で作成されたヘルプ ファイルには、自動同期パラメータが必要な場合があることに注意してください。

C# コード、GUI、および開いたヘルプ ファイル。

ダウンロード用に、上記のコードを含む C# VS2008 プロジェクトと、さまざまなヘルプ ビューアー ウィンドウを含むヘルプ ファイルを提供します (ショーケースのみの異なる CHM ファイル)。

于 2013-04-10T17:25:47.130 に答える