1.生成chm文件

首先,下载EasyCHM软件,此软件可将HTML文件、TXT文件、图片和文件夹按照文件层次生成.chm文件。EasyCHM打开界面如图所示:

点击“新建”,选择需要生成.chm文件的文件夹,并选择文件类型为*.*,如图所示:

点击搜素选项(M)——TOP图标设置——用户自定义——自定义大标题、小标题图标——点击确定,如图所示:

导入文件后, 如图所示:

点击“编译”,设置CHM相关选项,如图所示:

点击“生成CHM”,生成CHM文件,如图所示:

 2.程序添加HelpProvider控件

在程序设计器界面拖一个HelpProvider控件,将GenerateMember属性设置为True,保证程序中可以使用HelpProvider控件的对象;不要右击设置HelpNamespace属性,因为这样简单测试可以,但是帮助文档的路径会被限制,不利于程序的在其他机器上部署,因为会导致路径不匹配, 把帮助文档的路径设置放到程序中去,并采用相对路径。

按F1显示帮助文档的代码如下所示,将代码放到窗体的Load()函数中:

        // 按F1显示CHM帮助文档
private void Form1_Load(object sender, EventArgs e)
{
helpProvider1.HelpNamespace = AppDomain.CurrentDomain.BaseDirectory.ToString() + "帮助文档.chm";
helpProvider1.SetShowHelp(this, true); }

按钮点击事件控制帮助文档显示的代码如下所示:

        // 点击按钮,显示帮助文档
private void ToolStripMenuItem_s_Click(object sender, EventArgs e)
{
Process.Start(AppDomain.CurrentDomain.BaseDirectory.ToString() + "帮助文档.chm");
}

最终效果如下所示:

winform获取文件路径

string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名。

string str2=Environment.CurrentDirectory;//获取和设置当前目录的完全限定路径。

string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。

string str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。

string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。

“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”;

“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称;

“AppDomain.CurrentDomain.BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;

“System.Threading.Thread.GetDomain().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;

“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;

“System.IO.Directory.GetCurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;

String[] files = System.IO.Directory.GetFiles(path) //返回指定目录下的文件名

string str = System.IO.Path.GetFileNameWithoutExtension(path);//返回不具有扩展名的指定路径字符串的文件名

 

1、取得控制台应用程序的根目录方法

方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径

方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集

2、取得Web应用程序的根目录方法

方法1、HttpRuntime.AppDomainAppPath.ToString();//获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。用于App_Data中获取

方法2、Server.MapPath("") 或者 Server.MapPath("~/");//返回与Web服务器上的指定的虚拟路径相对的物理文件路径

方法3、Request.ApplicationPath;//获取服务器上ASP.NET应用程序的虚拟应用程序根目录

3、取得WinForm应用程序的根目录方法

1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径

2、Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称

3、Directory.GetCurrentDirectory();//获取应用程序的当前工作目录

4、AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集

5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称

其中:以下两个方法可以获取执行文件名称

1、Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。

2、Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称

3、System.IO.Path类中有一些获取路径的方法,可以在控制台程序或者WinForm中根据相对路径来获取绝对路径

获取web物理路径的方法是Server.MpaPath("~")

C# GenerateMember

visual studio 中,在属性栏中放置在winform的所有控件和组件都有一个新增加的属性GenerateMember ,默认为true,这是一个设计时的扩展属性,通过控制它的属性,你可以很方便的设置是让这些控件变量作为类的成员变量出现,还是作为InitializeComponent方法中的本地变量。即如果属性设为true,则你能在类的其他地方引用这个控件,否则,它将成为InitializeComponent方法的一个本地变量,你将在其他的方法中无法对这个控件进行直接引用控制

GenerateMember属性和Modifiers一同使用
Modifiers仅当GenerateMember属性设置为True时有效,其用来设置成员变量的可见级别
GenerateMember属性设置为False时,Modifiers属性设置无效

 
修改记录:
2017/07/12         第一次完成基本内容

C# CHM帮助文档的更多相关文章

  1. jQuery LigerUI 最新版压缩包(含chm帮助文档、源码、donet权限示例)

    jQuery LigerUI 最新版压缩包 http://download.csdn.net/download/heyin12345/4680593 jQuery LigerUI 最新版压缩包(含ch ...

  2. Ubuntu 14 如何打开 .chm格式文档?

    好多手册是.chm格式,Ubuntu是需要安装第三方软件才能打开.chm格式文档,操作方式如下: 到“软件中心” -> 搜索“xchm”,并安装 -> 右键某个.chm文档,选择“属性” ...

  3. .net应用程序中添加chm帮助文档打开显示此程序无法显示网页问题

    在做.net大作业时添加了chm帮助文档结果在打开时显示“此程序无法显示网页问题”,但是把帮助文档拷到别的路径下却显示正常, 经过从网上查找,终于找到了答案: (1).chm文件的路径中不能含有“#” ...

  4. chm帮助文档显示字体过小

    问题描述: 在查看chm帮助文档时,发现默认显示字体过小,阅读吃力 解决方案: 1. 点击选项按钮->Internet 选项 2. 点击辅助功能 3. 选中 忽略网页上指定的字号,点击确定 最后 ...

  5. 使用 Python 翻译 CHM 帮助文档

    此方法绝对切实可行 翻译成品项目: https://github.com/foyoux/InstallShield2020-Documents 效果预览 安装 docts 库 pip install ...

  6. 将C#文档注释生成.chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  7. 工具分享——将C#文档注释生成.chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  8. Javadoc转换chm帮助文档的四种方法总结

    1) 将现有的 html 文件集(比如 api) 制作成chm 文档 http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html 我 ...

  9. chm开源文档制作

    作为开发人员,API文档是非常关键的^_^,但是很多时候官方提供的文档是html的docs,不方便于携带查询,本章主要介绍chm文档的制作方法. 使用jd2chm制作chm文档 安装之前必须先安装 h ...

随机推荐

  1. JQuery Validate插件与实现

    菜鸟拙见,望请纠正 一:效果展示:以下是两个注册表单验证,左边使用Jquery validate插件实现,右边是自己用JQuery实现,效果差不多,但个人推荐用插件,毕竟前人栽了树而且长大了后人当然好 ...

  2. Node学习笔记之模块实现

    一.模块分类 由Node提供的模块,称为核心模块:部分核心模块在Node源代码的编译过程中,编译进了二进制执行文件.在node进程启动时,该部分就直接加载进内存,文件定位和编译执行的步骤可以省略掉,并 ...

  3. iOS 11 使用方法替换(Method Swizzling),去掉导航栏返回按钮的文字

    方法一:设置BarButtonItem的文本样式为透明颜色,代码如下: [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegro ...

  4. MS522低功耗寻卡

    方案:单片机处于低功耗模式,MS522处于软掉电模式.单片机用RTC定时(比如每隔1s)唤醒,单片机唤醒后唤醒MS522寻卡.寻到卡则做进一步处理,否则MS522继续进入软掉电模式,单片机进入低功耗模 ...

  5. GATK--数据预处理,质控,检测变异

    版权声明:本文源自 解螺旋的矿工, 由 XP 整理发表,共 13781 字. 转载请注明:从零开始完整学习全基因组测序(WGS)数据分析:第4节 构建WGS主流程 | Public Library o ...

  6. springboot快速入门(二)——项目属性配置(日志详解)

    一.概述 application.properties就是springboot的属性配置文件 在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring ...

  7. Android初学-AsyncTask下载网络图片

    AsyncTask 异步处理: mainfest: 注意添加的: -------------------- <uses-permission android:name="android ...

  8. c++ 分配与释放内存

    教学内容: calloc分配内存 calloc与malloc的区别 memset函数初始化内存 free释放动态分配的内存 一.calloc函数分配内存 void *calloc( size_t nu ...

  9. 使用 lxml 中的 xpath 高效提取文本与标签属性值

    以下代码在 python 3.5 + jupyter notebook 中运行测试无误! # 我们爬取网页的目的,无非是先定位到DOM树的节点,然后取其文本或属性值 myPage = '''<h ...

  10. MySQL易忘知识点梳理

    一.零碎知识 1.mysql where子句区分大小写:WHERE BINARY 2.判断是否为null,只能用is null,is not null,不能用=null或!=null 3.函数 4.S ...