从菜单中显示 chm

发布于 2024-10-14 07:12:22 字数 203 浏览 5 评论 0原文

嘿, 所以,基本上,当我从 ac# windows 表单的菜单栏中单击“查看帮助”时,我试图让我的 .chm 文件在帮助窗口中打开。我该怎么做? .chm 是否需要位于项目目录中? 我尝试使用 helpProvider 组件并将其命名空间设置为 .chm 文件,但是当我运行该应用程序时,按 F1 不会显示它......而且我似乎不知道如何让菜单栏显示它。

谢谢! 戴夫·K.

hey there,
so, basically i'm trying to get my .chm file to open in a help window when i click on 'view help' from the menu bar in a c# windows form. how do i do this? does the .chm need to be in the project's directory?
i tried using a helpProvider component and setting it's namespace to the .chm file, but when i run the app, pressing F1 doesn't bring it up...and i can't seem to figure out how to get the menu bar to display it.

thanks!
dave k.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏有森光若流苏 2024-10-21 07:12:22

HelpProvider 在这里出现问题,请使用 Help 类。首先,将 .chm 文件放在与 EXE 相同的目录中是一个非常好的主意。项目>>添加现有项目>选择您的 .chm 文件,以便将其添加到您的项目中。在“解决方案资源管理器”窗口中选择它,在“属性”窗口中设置“生成操作 = 内容”,“复制到输出目录”= 如果较新则复制。

您的表单的示例代码:

using System.IO;
...

    private void showMyHelp() {
        string path = Path.GetDirectoryName(Application.ExecutablePath);
        path = "file://" + Path.Combine(path, "example.chm");
        Help.ShowHelp(this, path);
    }
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (keyData == Keys.F1) {
            showMyHelp();
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
    private void HelpButton_Click(object sender, EventArgs e) {
        showMyHelp();
    }

HelpProvider gets in the way here, use the Help class. First off, putting the .chm file in the same directory as your EXE is a very good idea. Project > Add Existing Item > select your .chm file so it is added to your project. Select it in the Solution Explorer window, in the Properties window set Build Action = Content, Copy to Output Directory = Copy if newer.

Sample code for your form:

using System.IO;
...

    private void showMyHelp() {
        string path = Path.GetDirectoryName(Application.ExecutablePath);
        path = "file://" + Path.Combine(path, "example.chm");
        Help.ShowHelp(this, path);
    }
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (keyData == Keys.F1) {
            showMyHelp();
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
    private void HelpButton_Click(object sender, EventArgs e) {
        showMyHelp();
    }
深海不蓝 2024-10-21 07:12:22

Process.Start(Application.StartupPath + "\help.chm");

Process.Start(Application.StartupPath + "\help.chm");

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文