1. 添加提示信息

新建个窗体项目,项目名称为WinFormUI,解决方案名称为WinFormWithHelpDoc。删除默认创建的Form1,新建窗体MainForm,设置相关属性。我们要完成的效果是这样:

我们可以看到不同于常看到的窗体,它没有最大化、最小化按钮,而是多了个帮助按钮,怎样做出这样的窗体呢?

很简单,在窗体的属性中将HelpButton设置为true(这里说个小技巧,有选项的属性,双击属性名称即可改为下一个属性,而不用在后面选择),并且将MaximizeBox和MinimizeBox设置为false。

下面,我们再添加一个Label名为lblMessageTip、一个TextBox名为txtMessage、一个HelpProvider名为hpMainForm(该控件可为窗体提供提示信息或联机帮助):

双击窗体标题栏,在Load事件中写入Label和TextBox的提示信息:

hpMainForm.SetHelpString(lblMessageTip,"Here is the message.");
hpMainForm.SetHelpString(txtMessage,"Enter something here.");

运行窗体,按下标题栏的帮助按钮,再点击两个控件,可以看到提示信息。

2. 添加帮助文档

先找个后缀是chm的帮助文档,我这里就用Python的参考文档代替了 :D,将它放在项目的bin\Debug下:

在Load事件中加入两行代码:

hpMainForm.HelpNamespace = Application.StartupPath +@"\Python 语言参考手册Python Reference Manual.chm";
hpMainForm.SetShowHelp(this,true);

设置HelpProvider所对应的帮助文档,并设置在窗体中按下F1时打开帮助文档。

再次运行,按下F1,我们看到帮助文档跳出来了 :D

下面,再加入菜单栏,当单击帮助项时弹出帮助文档,添加菜单栏控件msMain:

并在菜单栏的快捷任务中选择“插入标准项”,快速添加菜单:

双击“帮助”下的“内容”,在其单击事件中写入如下代码:

Process.Start(Application.StartupPath +@"\Python 语言参考手册Python Reference Manual.chm");

用进程启动帮助文档,再次运行,点击“内容”,同样打开了帮助文档。

点击这里下载上面的示例,名称为WinFormWithHelpDoc,用VS2005创建。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.添加帮助文档(就是那种按F1弹出来的CHM)

(1) 准备一个chm文档

(2) 在页面上添加一个HelpProvider 控件

(3) formload中添加如下语句:

HelpProvider1.HelpNamespace = Application.StartupPath + "\FM20.CHM"

this.HelpProvider1.SetShowHelp(this, True)

这样就OK了.

还有一种办法是新起一个IEXPLORER的进程,打开CHM文件的. 可用于click了菜单中的项目,跳出chm文件

Dim LINK As String = Application.StartupPath + "\FM20.CHM"
            System.Diagnostics.Process.Start("IEXPLORE.exe", LINK)

2.添加帮助按钮

(1)还是需要HelpProvider控件,当然,和chm用到的合用一个.

(2)给各个控件设置help的信息,就是点了"?"这个按钮以后,再点击控件时,就会显示出来的信息

this.HelpProvider1.SetHelpString(Me.TextBox1, "enter the text to change")

(3)设置页面,使得它能够显示help按钮~ 这里有点奇怪的是,似乎只有当最大最小话按钮不显示的时候,才能显示help按钮,查看了一下windows也是如此,不知道有没有解决办法

this.HelpButton = True
                  this.MinimizeBox = False
                  this.MaximizeBox = False

搞定!

/*******************************************************************************************************************************************/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void Form1_Load(object sender, EventArgs e)
        { }

private void 帮助文档ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {//hhelpPwovider1为C#自带的控件。
                this.helpProvider1.HelpNamespace = Application.StartupPath + @"\你建立的帮助文档名称(注意应放在Debug下面).chm";
                Help.ShowHelp(this, this.helpProvider1.HelpNamespace);
            }
            catch
            {
                MessageBox.Show("系统没有找到相应的文件!");
            }
        }
    }
}

winform 添加帮助按钮的更多相关文章

  1. iOS 为键盘添加隐藏按钮

    // 为键盘添加隐藏按钮 UIToolbar * backView = [[UIToolbar alloc]initWithFrame:CGRectMake(, , , )]; [backView s ...

  2. 如何给magento的产品页面添加返回按钮

    如何给magento的产品页面添加返回按钮,最模板提供教程 第一步: 打开 E:\xampp\htdocs\magento\skin\frontend\default\bluescale\css\st ...

  3. iOS之自定义UITabBar替换系统默认的(添加“+”号按钮)

    自定义UITabBar替换系统默认的,目的是为了在UITabBar中间位置添加一个“+号按钮”,下面我们来聊聊具体的实现. 1.自定义WBTabBar,让其继承自UITabBar,代码如下: // / ...

  4. Visual Studio 2008中添加运行按钮 转载

    在Visual Studio 2008中添加运行按钮 默认情况下,VS2008中的工具栏上没有运行按钮,只有调试(Debug)按钮,可按照以下方法添加 1.点击菜单Tools(工具)->Cust ...

  5. C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示

    C# .winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示 解决方法一:设置label的Tag属性值与skinEngine的DisableTag属性值相同即可.默认值是9 ...

  6. EasyUI 1.3.6 DateBox添加清空按钮

    EasyUI 1.3.6 DateBox添加清空按钮 效果如图: EasyUI datebox是没有清空按钮的,可通过如下方法加入: 打开jquery.easyui.min.js看到这样如此乱的代码, ...

  7. HTML中使用<input>添加的按钮打开一个链接

    在HTML中,<form>表单的<input type="button">可以添加一个按钮.如果想让该按钮实现<a> 的超链接功能,需要如下实现 ...

  8. 127使用 TableView 自带的单元格样式实现好友列表,另外在单元格中添加辅助按钮

    类似的做法如之前这篇随笔:114自定义UITableViewCell(扩展知识:为UITableViewCell添加动画效果) 相比之下:自定义 UITableViewCell 的内容灵活,可根据需求 ...

  9. cocos2dx游戏--欢欢英雄传说--添加攻击按钮

    接下来添加攻击按钮用于执行攻击动作.同时修复了上一版移动时的bug.修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) { if (_seq) ...

随机推荐

  1. ubuntu安装中文man手册

    1.安装manpages-zh包 sudo apt-get install manpages-zh 2.修改manpath文件 执行如下命令: vi /etc/manpath.config %s+/u ...

  2. cobbler+koan

    cobbler+koan自动重装客户机   koan是kickstart-over-a-network的缩写,它是cobbler的客户端帮助程序,koan允许你通过网络提供虚拟机,也允许你重装已经存在 ...

  3. 【Mac系统 + Python + Django】之开发一个发布会系统【Django视图(二)】

    此学习资料是通过虫师的python接口自动化出的书学习而来的,在此说明一下,想学习更多的自动化的同学可以找虫师的博客园,非广告,因为我python+selenium自动化也是跟虫师学的,学习效果很好的 ...

  4. Template Method模式

    模版方法模式,实际上就是指子类做方法实现,父类做算法实现. 通常情况下,子类继承父类,我们是站在子类的视角上来看父类的,目的不外乎下面三个 1,子类继承父类的方法 2,通过子类来增加方法,实现新的功能 ...

  5. HBase概念及表格设计

    HBase概念及表格设计 1. 概述(扯淡~) HBase是一帮家伙看了Google发布的一片名为“BigTable”的论文以后,犹如醍醐灌顶,进而“山寨”出来的一套系统. 由此可见: 1. 几乎所有 ...

  6. 3s 简介

    "3S"技术是英文遥感技术(Remote Sensing RS).地理信息系统(Geographical information System GIS).全球定位系统(Global ...

  7. 【Unity 3D】学习笔记四十二:粒子特效

    粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起.来模拟火焰,爆炸.水滴,雾气等效果. 要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system就可 ...

  8. Cobbler部署之FAQ处理

    Cobbler报错处理 通过cobbler check检查出现的报错 红色标注为报错关键信息 9.1 报错一 # cobbler check httpd does not appear to be r ...

  9. 关于html的小bug

    废话不说 看代码 因为最近比较忙  所以不闲聊了啊 <!DOCTYPE html> <html lang="en"> <head> <me ...

  10. Spring Ioc (this is my first example)

    一.首先看下源码结构 二.HelloWord 类 package com.northeasttycoon.bean; /** * 打印出 helloword 参数值 * * @author tycoo ...