我有一个使用 HelpProvider 类的 C# Winforms 应用程序。
每当我按 F1 调出帮助时,帮助窗口将始终位于我的应用程序顶部,我无法将我的应用程序 UI 带到前台。我仍然可以与我的 UI 交互,但帮助窗口将保留在顶部。
这是 HelpProvider 设计的吗?或者我错过了什么?
这个问题有一个解决方案,虽然有点脏,但是有效。
问题是,HelpProvider 打开的帮助窗口始终位于其顶部parent窗口控件,由第一个参数中的 Control 实例确定Help.ShowHelp
。即使您指定null
在那里,主应用程序窗体仍然用作父窗口。
为了避免这种情况,可以创建一个虚拟表单,它将用作帮助父表单。该表单将永远不会显示,但帮助窗口仍将位于其“顶部”,实际上并不位于所有其他应用程序窗口的顶部。
public static class AppHelp
{
private static Form mFrmDummyHost = new Form();
public static void ShowChm()
{
Help.ShowHelp(mFrmDummyHost, "my_help.chm");
}
}
当然,其他所有Help.ShowHelp
重载也可以这样调用。
希望这对像我这样寻找永远不会过时的问题的答案的人有帮助;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)