用WinForm的ShowHelp()函数处理CHM文件
ShowHelp()函数能够对CHM文件进行一定的操作,比如打开指定页面,检索关键字,检索首字母等。ShowHelp()函数有几个重载,下面我介绍比较常用的操作。
一、根据页面名字,打开指定页面
System.Windows.Forms.Help.ShowHelp(null, "E:\\Users\\Winner\\Desktop\\JavaScript.CHM", form.HelpNavigator.Topic, "html/jsmscruntimeerrors.htm");
注意:第一个参数如果不为null的话,必须指定WinForm的控件;第二个参数就是CHM文件路径;第三个参数是枚举变量;第四个参数是指定的HTML文件名前面加上“html\”。
二、检索关键字,但不打开页面
Help.ShowHelp(null, "E:\\Users\\Winner\\Desktop\\JavaScript.CHM", form.HelpNavigator.TopicId, "global");
注意:第四个参数是关键字,关键字必须是CHM已经规定好的关键字,如果想检索任意文字,ShowHelp()不支持。
三、检索关键字,如果匹配,则打开页面
Help.ShowHelp(null, "E:\\Users\\Winner\\Desktop\\JavaScript.CHM", form.HelpNavigator.KeywordIndex, "global");
四、只检索关键字的首字母,不打开页面
Help.ShowHelp(null, "E:\\Users\\Winner\\Desktop\\JavaScript.CHM", form.HelpNavigator.AssociateIndex, "Golbal");
五、只是打开检索页面,不进行其它任何操作,包括检索
Help.ShowHelp(null, "E:\\Users\\Winner\\Desktop\\JavaScript.CHM", form.HelpNavigator.Find, "Golbal");
ShowHelp()函数提供的功能有限,如果想实现CHM的其它操作,必须自己写代码处理CHM文件,像最常用的检索CHM的任意文字内容。但是不好直接处理CHM文件,这时需要把CHM转换为其它文件进行处理,如转换为html文件。转换方法可以见我的另一篇文章:将CHM文件转换为HTML文件。