ShowWindow和messageloop

时间:2009-12-17 05:48:47

标签: c# winforms multithreading

我正在使用user32.dll中的ShowWindow来显示信使样式弹出窗口(总是在顶部,不会窃取焦点),但我无法让他们回复。似乎我的新表单缺少一个messageloop,因此无法绘制它的控件或对输入作出反应。

我试图在后台工作者中创建表单,但这似乎没有帮助(表单仍然没有响应)。

如果我用Application.Run(myForm)显示表单,我会得到messageloop和响应表单,但是没有always-on-top + do-not-steal-focus功能。

所以我的问题是,如何为表单创建一个messageloop?

1 个答案:

答案 0 :(得分:1)

您可能需要查看this SO帖子,了解如何在不窃取焦点的情况下显示表单。这应该有所帮助
在答案的下方,您可以看到:

protected override bool ShowWithoutActivation
{
   get
   {
      return true;
   }
}

然后只需执行form.Show(),你就应该得到一个带有非活动窗口的消息泵。