【发布时间】:2016-06-18 09:19:55
【问题描述】:
我的应用程序使用了一个计时器,它会在几秒钟后显示一个表单。 当我最小化我的应用程序以执行其他操作时,计时器仍然处于活动状态(我对此表示满意),并且表单将焦点放在我的所有窗口上(正常行为)。
我希望新表单在我的主要应用程序上方打开,而不是在我的所有窗口上方。
在主窗体中,我这样称呼新窗体:
MRIS.EVENT_BOX form1 = new MRIS.EVENT_BOX();
form1.Owner = this;
form1.ShowDialog();
我设法通过在 EVENT_BOX 中添加它来消除焦点问题:
protected override bool ShowWithoutActivation { get { return true; } }
我还检查了 TopMost 在新表单中是否设置为 false。
但是新的表格仍然显示在所有其他表格之上(这次没有重点......)。
我检查了一些其他问题,但找不到有用的东西。
有人谈可见形式?
如果你能帮助我?
谢谢
【问题讨论】:
-
显示为对话框 (
ShowDialog) 意味着表单将显示在原始表单的“顶部”——特别是,必须关闭新表单才能再次使用原始表单.它旨在用于对话框。如果您只是想显示另一个表单,那么Show就是您想要的方法,如@Leopard 所示。 -
从你的问题中不完全清楚你想要在计时器滴答时发生什么......是“主要应用程序”其他打开的不相关应用程序和“我的所有窗口”你的 c# 中的其余窗口应用程序?当计时器计时,您希望哪个窗口位于顶部?
-
@Steve16351:“我的所有窗口”是指与我的应用程序无关的所有窗口。我想启动我的应用程序,切换到其他任何东西,例如浏览互联网并让我的应用程序显示一个表单,而不是在所有窗口的顶部显示它。然后,当完成浏览互联网时,我切换回我的应用程序并在我的主应用程序表单上方看到我的表单。