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("系統沒有找到相應的文件!");
}
}
}
}
