zoukankan      html  css  js  c++  java
  • 如何通过C#调用CHM帮助文件

     1. 首先这篇文章是比较详细的一个介绍:

    Open Help file on F1 function key press in windows
    application


    This article explains how to open help file on F1 Function key press in
    windows application.


    Almost all applications need Help file. It could be .chm , .PPT, . HTML, .PDF
    or any other kind of file which you want to open on F1 key press. Lets see how
    can we do that.


    .NET Framework provides F1helpProvider component to handle
    F1 key press. You can use this component to show help file (.chm, .PPT, .PDF
    etc.,) to the user. The developer need not have to write even a single line of
    C# or Vb.Net code to display help file on press of F1 function key from
    keyboard.


    You can find the helpProvider component under Component tab of ToolBox in
    Visual Studio. Below is the pic which will guide you to find
    Helpprovider component.




    Now Just drag helpProvider into your application. Then go to the property of
    HelpProvider and Set its "HelpNamespace" property to your
    desired help file path. Below is the picture which will guide you to do
    that.




    Once you set the property, then compile and run your sample
    application.


    Now click F1 Button from your keyboard when the focus is on your application
    and you will see your help file opened.


    You can also set the different property of helpProvider componet (Which you
    have added in the main form) from the MainForm property window, for eg., set the
    TOC when user clicks on the F1 key. You can also set the property to show window
    help button etc.,



    Now we will see how to display help topic in a .chm file by keyword on a
    Button Click


    Step 1 -> Click Button1 and display its properties.
    Step 2 ->Set the
    HelpKeywordonHelpProvider1 property to "Your .CHM Topic".

    Step 3 -> Set the HelpNavigatoronHelpProvider1 property
    to "KeywordIndex".
    Step 4 -> Compile and run your application


    If you want to set using Code you can do like this

    helpProvider1.HelpNamespace =

    "C:/helpFile.chm";

    HelpNavigator.KeywordIndex); //Set the Keyword

    helpProvider1.SetHelpKeyword(Button1,

    "Your .CHM Topic"); // Topic in help file.

    helpProvider1.SetHelpNavigator(Button1,



    Hope this will help all who wants to integrate F1 key press to open help
    file in windows application.


    2. 这里主要用到HelpProvider类,它用于提供控件的弹出或联机帮助。


    每个 HelpProvider 实例均维护一个对关联控件的引用的集合。若要使帮助文件与
    HelpProvider 关联,请设置 HelpNamespace 属性。通过调用 SetHelpNavigator 方法并提供指定控件的 HelpNavigator 值来指定提供的帮助类型。通过调用 SetHelpKeyword
    方法为帮助提供关键字或主题。若要打开特定主题的帮助,则应以 topicName.htm 的形式传入关键字。


    若要使特定的帮助字符串与控件关联,请使用 SetHelpString 方法。如果用户在控件包含焦点时按下 F1
    键,使用此方法与控件关联的字符串将显示在弹出窗口中。


    如果尚未设置 HelpNamespace 属性,则必须使用 SetHelpString
    方法提供帮助文本。如果同时设置了 HelpNamespace 和帮助字符串,则基于
    HelpNamespace 的帮助信息优先。


    HelpProviderHelp 类上调用方法来提供帮助功能。


    HelpProvider控件可以挂起控件,显示帮助主题。
    1.SetShowHelp()方法:设置指定控件是否显示帮助信息;
    2.HelpNamespace()方法:设置帮助文件;
    3.SetHelpKeyword()方法:为帮助文件设置关键字;
    4.SetHelpNavigator()方法:设置显示帮助中的元素;
    5.SetHelpString()方法:将帮助信息的文本字符串关联到控件上。



    TestHelpProvider:






    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.ComponentModel;   
    4. using System.Data;   
    5. using System.Drawing;   
    6. using System.Text;   
    7. using System.Windows.Forms;   
    8.   
    9. namespace TestHelpProvider   
    10. {   
    11.     public partial class Form1 : Form   
    12.      {   
    13.         public Form1()   
    14.          {   
    15.              InitializeComponent();   
    16.          }   
    17.   
    18.         private void
      Form1_Load(object sender, EventArgs e)   
    19.          {   
    20.             //将帮助信息的文本字符串关联到控件上,在相应控件上按下F1键时显示   

    21.              helpProvider1.SetHelpString(textBox1, "Enter an age that is less than 65.");   
    22.              helpProvider1.SetHelpString(textBox2, "Enter
      a 5 digit post code."
      );   
    23.          }   
    24.      }   
    25. }  


    3. 介绍了菜单项显示帮助文档:



    The HelpProvider control is used to
    show how to link to specific keyword in a .chm help file.


    private void mnuContentsHelp_Click(object sender, System.EventArgs
    e)
    {
            // Show the contents of the help file.
           
    Help.ShowHelp(this, hpAdvancedCHM.HelpNamespace);
        }

        private
    void mnuIndexHelp_Click(object sender, System.EventArgs e)
    {
            //
    Show index of the help file.
            Help.ShowHelpIndex(this,
    hpAdvancedCHM.HelpNamespace);
        }

        private void
    mnuSearchHelp_Click(object sender, System.EventArgs e)
    {
            // Show
    the search tab of the help file.
            Help.ShowHelp(this,
    hpAdvancedCHM.HelpNamespace, HelpNavigator.Find, "");
        }



    4. 一个邮件介绍:


    If
    you use F1HelpProvider control. When you press F1 on the active control It will
    shows a pop up with Text which you have set already. Follow the Steps Below:


    1. Select the F1HelpProvider control from ToolBox and Drag it to your
    Windows Form.
    2. Set the following code in the Page Load event of your Form.


    helpProvider1.SetHelpString(txtPinCode, "Please Enter Ur city pin
    Code.");

    In the above code txtPinCode is a TextBox.
    3. Then run your
    application by pressing F5.
    4. If you have focus on the Text Box Pin Code
    then press F1. It will shows a Message that you have set likely to be
    ToolTip.





    5.一个最好的例子,看了就明白。


    Donwload example project
    C# 2005 Express from:
    http://www.help-info.de/download/CSharp_CHM.zip
    The CHM file resides in
    the DEBUG
    folder and you have to do following before giving that a try:
    to open the CHM
    file right-click the saved file, click
    Properties, and then click Unblock.


    (他说需要对CHM文件做这样的操作,我试了,可以直接F1打开,你们要是有问题就按照步骤)。



    下面是代码:


            private void Form1_Load(object sender, EventArgs
    e)
            {
                // set F1 help topic for this form
               
    helpProvider1.HelpNamespace = Application.StartupPath + @"\" +
    sHTMLHelpFileName;
                helpProvider1.SetHelpNavigator(this,
    HelpNavigator.Topic);
                helpProvider1.SetHelpKeyword(this,
    @"/Garden/garden.htm");
               
    helpProvider1.SetHelpNavigator(this.btnStart,
    HelpNavigator.Topic);
                helpProvider1.SetHelpKeyword(this.btnStart,
    @"/Garden/flowers.htm");
               
    helpProvider1.SetHelpNavigator(this.btnExit,
    HelpNavigator.Topic);
                helpProvider1.SetHelpKeyword(this.btnExit,
    @"/Garden/tree.htm");
               
    helpProvider1.SetHelpNavigator(this.chkMain,
    HelpNavigator.Topic);
                helpProvider1.SetHelpKeyword(this.chkMain,
    @"/HTMLHelp_Examples/jump_to_anchor.htm#AnchorSample");
          
    }

  • 相关阅读:
    关于json操作,这里再为大家推荐几款比较实用的json在线工具
    JS操作JSON总结
    HTML WebSocket
    HTML应用程序缓存
    前段也能学习网址
    简述jpg。Gif。png-8.png-24的区别,分别使用场景
    HTML相关问题
    html5移动端知识点总结
    html5本地存储(localStorage)使用介绍
    node环境变量----新全局包管理配置
  • 原文地址:https://www.cnblogs.com/lujin49/p/2344916.html
Copyright © 2011-2022 走看看