我正在使用user32.dll中的ShowWindow来显示信使样式弹出窗口(总是在顶部,不会窃取焦点),但我无法让他们回复。似乎我的新表单缺少一个messageloop,因此无法绘制它的控件或对输入作出反应。
我试图在后台工作者中创建表单,但这似乎没有帮助(表单仍然没有响应)。
如果我用Application.Run(myForm)显示表单,我会得到messageloop和响应表单,但是没有always-on-top + do-not-steal-focus功能。
所以我的问题是,如何为表单创建一个messageloop?
答案 0 :(得分:1)
您可能需要查看this SO帖子,了解如何在不窃取焦点的情况下显示表单。这应该有所帮助
在答案的下方,您可以看到:
protected override bool ShowWithoutActivation
{
get
{
return true;
}
}
然后只需执行form.Show(),你就应该得到一个带有非活动窗口的消息泵。