4

单击 VB.NET 中的按钮时,我想显示 .CHM 帮助文件。谁能告诉我代码如何做到这一点?

Private Sub cmdHelp_Click(ByVal sender As System.Objects, Byval e As System.EventArgs)Handles cmdHelp.Click
   'Please help provide some code
End Sub
4

4 回答 4

9

.NET APIHelp在命名空间中提供类System.Windows.Forms。一些例子:

Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.TableofContents, Nothing)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Index, Nothing)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Topic, "Page.html")
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.TopicId, 123)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Keyword, "Keyword")
于 2011-07-17T23:00:01.803 回答
5

用动词 of 做一个 Process.Startopen就可以了:

Module Module1

    Sub Main()
        Dim p As New Process()
        Dim psi As New ProcessStartInfo("path to my CHM file")
        psi.Verb = "open"
        p.StartInfo = psi
        p.Start()

        Console.ReadKey()
    End Sub

End Module

请注意,.chm从 WinXP SP3 (SP2?) 开始,文件受到操作系统的严格限制——它们被认为是一种合理的安全风险,因此您不能直接从网络或远程位置打开它们。您将需要进行相应的编码,并在尝试打开它们时期待异常。

于 2011-07-12T08:57:58.983 回答
1

在按钮单击事件上编写此代码

Dim RetVal
RetVal = Shell("hh.exe " & App.HelpFile, vbNormalFocus)

其中 hh.exe 是任何名称 App.Helpfile 是您的 chm 文件名

于 2013-02-21T10:41:24.477 回答
0

您还可以使用 HH.EXE 来显示指定的主题。

在示例代码中替换[topicid]为真实的主题 id 并替换[yourhelpfile.chm]为您的 .chm 文件的完整路径和名称

如果需要返回值

Dim RetVal As Integer = Shell("HH.EXE -mapid [topicid] ms-its:[yourhelpfile.chm]", AppWinStyle.NormalFocus)

否则就是这个

Shell("HH.EXE -mapid [topicid] ms-its:[yourhelpfile.chm]", AppWinStyle.NormalFocus)
于 2019-10-04T05:34:02.307 回答