使用HelpKeyword和TopicID在标签页控件上提供HelpProvider和上下文相关帮助

时间:2012-02-21 21:00:56

标签: tabcontrol tabpage

我遇到了谷歌搜索无法解决的问题(或者我没有尝试过关键词的神奇组合)。无论如何,我遇到了以下问题:

我正在使用VS提供的HelpProvider组件为我的应用程序创建上下文相关帮助。要创建我的帮助文件,我使用的是HelpSmith,它生成包含主题和相应主题ID的.chm文件。我们的想法是,一旦设置了HelpProvider.HelpNamespace,我就可以从控件属性中编辑HelpKeyword和HelpNavigator选项。当我指定按钮的HelpKeyword = 20和HelpNavigator = TopicID时,这似乎有效。我运行,单击并按住按钮并按F1,我的帮助文件按预期打开正确的主题。但是我对每个TabPage控件的上下文相关帮助更感兴趣。当我单击外部TabControl而不是单个选项卡页面时,它似乎有效。理想情况下,我想点击标签所在的标签,并以这种方式显示帮助。

这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

我只是遇到了这个问题,似乎焦点必须在标签页内(而不是标签本身)。可能有一个比这更好的解决方案,但这是有效的。当选定的选项卡索引发生变化时,它会将焦点移动到选项卡内的第一个控件。

    /// <summary>
    /// Moves the focus to the first control on the tab to ensure that the context sensitive help works
    /// </summary>
    private void tabcMaster_SelectedIndexChanged(object sender, EventArgs e)
    {
        SelectNextControl(tabcMaster.SelectedTab,true,true, true, false);
    }