winform 添加帮助按钮
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 添加帮助按钮的更多相关文章
- iOS 为键盘添加隐藏按钮
// 为键盘添加隐藏按钮 UIToolbar * backView = [[UIToolbar alloc]initWithFrame:CGRectMake(, , , )]; [backView s ...
- 如何给magento的产品页面添加返回按钮
如何给magento的产品页面添加返回按钮,最模板提供教程 第一步: 打开 E:\xampp\htdocs\magento\skin\frontend\default\bluescale\css\st ...
- iOS之自定义UITabBar替换系统默认的(添加“+”号按钮)
自定义UITabBar替换系统默认的,目的是为了在UITabBar中间位置添加一个“+号按钮”,下面我们来聊聊具体的实现. 1.自定义WBTabBar,让其继承自UITabBar,代码如下: // / ...
- Visual Studio 2008中添加运行按钮 转载
在Visual Studio 2008中添加运行按钮 默认情况下,VS2008中的工具栏上没有运行按钮,只有调试(Debug)按钮,可按照以下方法添加 1.点击菜单Tools(工具)->Cust ...
- C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示
C# .winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示 解决方法一:设置label的Tag属性值与skinEngine的DisableTag属性值相同即可.默认值是9 ...
- EasyUI 1.3.6 DateBox添加清空按钮
EasyUI 1.3.6 DateBox添加清空按钮 效果如图: EasyUI datebox是没有清空按钮的,可通过如下方法加入: 打开jquery.easyui.min.js看到这样如此乱的代码, ...
- HTML中使用<input>添加的按钮打开一个链接
在HTML中,<form>表单的<input type="button">可以添加一个按钮.如果想让该按钮实现<a> 的超链接功能,需要如下实现 ...
- 127使用 TableView 自带的单元格样式实现好友列表,另外在单元格中添加辅助按钮
类似的做法如之前这篇随笔:114自定义UITableViewCell(扩展知识:为UITableViewCell添加动画效果) 相比之下:自定义 UITableViewCell 的内容灵活,可根据需求 ...
- cocos2dx游戏--欢欢英雄传说--添加攻击按钮
接下来添加攻击按钮用于执行攻击动作.同时修复了上一版移动时的bug.修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) { if (_seq) ...
随机推荐
- KSTORE日常工作遇到问题总结
1.csv导入kstore命令语句 oimpexp -F "E:/127.csv" -S KSTORE -T "T_BUSDATA" -d 1 -z -B 7 ...
- MIC中offload语法总结
MIC中offload的用法如下: #pragma offload specifier [,specifier...]specifier可以填入的选项为:target 例:taget(mic:0)if ...
- struts2中在Action中如何获取servlet的api?
1.通过ActionContext类(拿到的不是真正的servlet api,而是一个map) ActionContext context = ActionContext.getContext(); ...
- 【JMeter4.0学习(十一)】之JMeter对(Mysql、Oracle)数据库性能测试脚本开发
一.MySQL数据库链接: 注:下面所产生的问题一律参考详见:<[JMeter4.0]之遇到的问题总结(持续更新)>(包括Mysql.Orcale) 准备:引包,包路径一定要放对位置,参考 ...
- Ubuntu 16.04 关闭/打开笔记本触摸板
由于笔记本触摸板太多灵敏,影响使用,所以禁用掉触摸板. 禁用触摸板命令: sudo rmmod psmouse 启用触摸板命令 sudo modprobe psmouse 注意:启用之后可能会有几秒钟 ...
- 02 Memcache add详细介绍
一:Memcached add 命令参数 ()add key flag expire length [增] key: 键名(起一个独立的名字) flag 标志,要求为一个正整数 备注:()当Memca ...
- 【BZOJ1492】[NOI2007]货币兑换Cash 斜率优化+cdq分治
[BZOJ10492][NOI2007]货币兑换Cash Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下简称B券).每 ...
- Arrays数组工具类中存在的坑!
以下是一个坑: 看到使用asList时候,可以返回一个集合,当然集合拥有CRUD的特性: 代码中使用 了add和remove时候均报错:Exception in thread "main&q ...
- spring boot的对象注入
1 需求 现在我们的项目中需要引入一个java类库,我想要很方便的使用该类库中的一个类,并且我想要创建这个类的一个单例对象.然后可以很方便的在各个模块中用@AutoWired进行对象注入. 比如一个配 ...
- js格式化货币金额
/* 格式化金额, s : 金额 n : 保留位数 */ function formatMoney(s, n) { n = n > 0 && n <= 20 ? n : 2 ...