在C#中使用.chm帮助文件
将编译好的.chm帮助文件添加到C# 编写的程序中时,需要调用Help类的ShowHelp和ShowHelpIndex静态方法。下面对这两个方法进行详细介绍。
(1)ShowHelp方法。显示帮助文件的内容。该方法有4种重载形式,它们的语法形式分别如下。
语法1:
public static void ShowHelp (Control parent,string url)
参数说明如下。
parent:标识“帮助”对话框的父级的Control。
url:帮助文件的路径和名称。
返回值:显示指定URL处的帮助文件内容。
语法2:
public static void ShowHelp (Control parent,string url,HelpNavigatornavigator)
参数说明如下。
parent:标识“帮助”对话框的父级的Control。
url:帮助文件的路径和名称。
navigator:HelpNavigator值之一。HelpNavigator值及说明如表1所示。
表1 HelpNavigator值及说明
语法3:
public static void ShowHelp (Controlparent,string url,string keyword)
参数说明如下。
parent:标识“帮助”对话框的父级的Control。
url:帮助文件的路径和名称。
keyword:要为其显示帮助信息的关键字。
返回值:显示在指定URL处找到的有关特定关键字的帮助文件内容。
语法4:
public static void ShowHelp (Control parent,string url,HelpNavigatorcommand,Object parameter)
参数说明如下。
parent:标识“帮助”对话框的父级的Control。
url:帮助文件的路径和名称。
command:HelpNavigator值之一。 HelpNavigator值及说明如表4所示。
Parameter:任意类型的参数。
返回值:显示位于用户提供的URL处的帮助文件内容。
(2)ShowHelpIndex方法。显示指定帮助文件的索引。
语法:
public static void ShowHelpIndex (Control parent,string url)
示例
在Windows应用程序中调用.chm帮助文件
本示例实现的是,当程序运行时,单击【help】按钮,在程序中调用.chm帮助文件。
程序主要代码。
private void bnthelp_Click(object sender, EventArgs e)
{
string helpfile = Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.Startup Path.LastIndexOf("\\")).LastIndexOf("\\"));
helpfile+=@"\help\mrHelp.chm";
Help.ShowHelp(this, helpfile);
Help.ShowHelpIndex(this, helpfile); //显示指定帮助的索引
}
完整程序代码如下:
★ ★★★★Form1.cs窗体代码文件完整程序代码★★★★★
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace _5_02
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void bnthelp_Click(object sender, EventArgs e)
{
string helpfile = Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
helpfile+=@"\help\mrHelp.chm";
Help.ShowHelp(this, helpfile);
Help.ShowHelpIndex(this, helpfile); //显示指定帮助的索引
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
★ ★★★★Form1.Designer.cs窗体代码文件完整程序代码★★★★★
namespace _5_02
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.bnthelp = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// bnthelp
//
this.bnthelp.Location = new System.Drawing.Point(91, 34);
this.bnthelp.Name = "bnthelp";
this.bnthelp.Size = new System.Drawing.Size(70, 23);
this.bnthelp.TabIndex = 0;
this.bnthelp.Text = "help";
this.bnthelp.UseVisualStyleBackColor = true;
this.bnthelp.Click += new System.EventHandler(this.bnthelp_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 99);
this.Controls.Add(this.bnthelp);
this.Name = "Form1";
this.Text = "帮助引用";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button bnthelp;
private System.Windows.Forms.HelpProvider helpProvider1;
}
}
★ ★★★★Program.cs主程序文件完整程序代码★★★★★
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace _5_02
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}