-1

我有一个应用程序安装了另外两个具有“帮助”选项的应用程序。这些应用程序中的每一个都有一个共同的帮助文件,但内容应根据“目录”中为应用程序选择的索引显示。如果我打开一个应用程序,则应显示该特定应用程序的帮助。

对于 Appl1,我的代码看起来像这样。

    private void Help_Click(Core.CommandBarButton Ctrl, ref bool CancelDefault)
    {
        if (System.IO.File.Exists(new PlugInConstants().HELP_FILE_Path))
        {                
            System.Windows.Forms.Help.ShowHelp(new System.Windows.Forms.Control(),
                new PlugInConstants().HELP_FILE_Path,
                System.Windows.Forms.HelpNavigator.TableOfContents, "Appl1");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(m_objLanguage.ERR_HELP_NOT_FOUND.Replace
                ("%1", m_objGlobalConfig.HelpFilename));
        }

        CancelDefault = false;
    }

Appl2 看起来像这样

  private void HelpToolStripMenuItem_Click(object sender, EventArgs e)
    {
        helpToolStripMenuItem.Enabled = false;   
        string helpFilePath;
        helpFilePath = new TrayConstants().HELP_FILE_Path;

        if (System.IO.File.Exists(helpFilePath))
        {
            System.Windows.Forms.Help.ShowHelp(new System.Windows.Forms.Control(), 
                helpFilePath, System.Windows.Forms.HelpNavigator.TableOfContents, "Appl2") ;
        }
        else
        {
            if (m_helpPage == null)
                m_helpPage = new HelpPage();
            m_helpPage.ShowDialog();
        }

       helpToolStripMenuItem.Enabled = true;
    }

从这里我只能看到通用帮助文件的内容页面,而不是选择的特定应用程序帮助。现在我确实运行了 Appl1,但我仍然可以看到主要MyApp但不是Appl1自动选择的内容以及显示在右侧的内容。

图像中的 !st 屏幕是我现在得到的,但我需要第二个屏幕

我正在使用 VS 2010,C#,提前致谢

4

1 回答 1

0

我相信您的问题是您在 HelpNavigator 枚举中访问了错误的值。看起来应该是主题,而不是 TableOfContents。

System.Windows.Forms.Help.ShowHelp(new System.Windows.Forms.Control(), 
                helpFilePath, System.Windows.Forms.HelpNavigator.Topic, "Appl2") ;

http://msdn.microsoft.com/en-us/library/system.windows.forms.helpnavigator.aspx

于 2013-03-15T05:28:35.040 回答