我有一个包含大量帮助按钮的C#项目。单击其中一个按钮时,它会打开一个帮助文件(Help.chm)到相关页面。以下是其中一个页面的代码:
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文件。如果我的帮助文件已经打开,有没有办法改变页面?如果有办法通过命令行执行此操作,那将是一个很好的起点。
答案 0 :(得分: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(附带快照)。用户按钮单击后刷新主题(例如帮助主题1)。请注意,使用Microsoft HTMLHelp Workshop创建的帮助文件可能需要自动同步参数。
为了下载,我提供了一个C#VS2008 Project,包括上面的代码和带有不同帮助查看器窗口的帮助文件(仅用于展示案例的不同CHM文件)。