Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HelpProvider类显示帮助,UI始终位于帮助窗口后面_C#_.net_Winforms - Fatal编程技术网

C# 使用HelpProvider类显示帮助,UI始终位于帮助窗口后面

C# 使用HelpProvider类显示帮助,UI始终位于帮助窗口后面,c#,.net,winforms,C#,.net,Winforms,我有一个使用HelpProvider类的C#Winforms应用程序。 每当我按F1键调出“帮助”时,“帮助”窗口将始终位于我的应用程序顶部,我无法将我的应用程序UI带到前台。我仍然可以与UI交互,但“帮助”窗口将保持在顶部 这是帮助提供者设计的吗?还是我遗漏了什么?这确实是故意的,而且是我没有意识到的。我刚刚重新编译了我最后一年的项目并确认了它。我已经读过了,基本上每次单击表单时,帮助文件都设置为TopMost=True。这意味着,即使您将表单编码为最顶层,只要您单击帮助文件,它也会再次返回顶

我有一个使用HelpProvider类的C#Winforms应用程序。 每当我按F1键调出“帮助”时,“帮助”窗口将始终位于我的应用程序顶部,我无法将我的应用程序UI带到前台。我仍然可以与UI交互,但“帮助”窗口将保持在顶部


这是帮助提供者设计的吗?还是我遗漏了什么?

这确实是故意的,而且是我没有意识到的。我刚刚重新编译了我最后一年的项目并确认了它。我已经读过了,基本上每次单击表单时,帮助文件都设置为TopMost=True。这意味着,即使您将表单编码为最顶层,只要您单击帮助文件,它也会再次返回顶层

我相信,如果您使用start process,它应该可以绕过这个问题,而不会失去帮助提供者提供的一些可定制性

private void textBox1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
  if(e.KeyCode ==Keys.F1)
  {
    System.Diagnostics.Process.Start(@"C:\WINDOWS\Help\mspaint.chm");
  }
}

希望它有帮助

这个问题有一个解决方案,有点脏,但它是有效的。 问题是,HelpProvider打开的帮助窗口始终位于其父窗口控件的顶部,这由
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
重载也可以用这种方式调用


希望这能帮助像我这样的人,寻找永不过时的问题的答案;)

根据设计,用户希望阅读帮助。@Hans Passant,是的,但是如果用户希望返回程序执行帮助所说的内容,但由于“帮助”窗口受阻而无法执行,该怎么办?她会将其拖到一边或将其关闭。确保不要占用太多的屏幕空间。真的吗?“确保不要占用太多屏幕空间”是为什么帮助需要留在前台的原因?看起来你需要一个比这更有力的理由来设计它。感谢你给出的答案仍然支持帮助提供者的上下文敏感功能。